基于Android的快递代领系统

 博主介绍:本人专注于Android/java/数据库/微信小程序技术领域的开发,以及有好几年的计算机毕业设计方面的实战开发经验和技术积累;尤其是在安卓(Android)的app的开发和微信小程序的开发,很是熟悉和了解;本人也是多年的Android开发人员;希望我发布的此篇文件可以帮助到您;

🍅文章末尾获取源码下载方式🍅

功能演示 

1:后台界面

 2:客户端演示

一、项目介绍

1、实现用户信息管理(android页面新增,修改,查询,删除)
2、实现快递信息维护( android页面新增,修改,查询,删除)
3、实现代领服务(需要实名认证的用户进行登记,拍照片存档,并标记该快递信息被代领)
4、实现快递货架信息维护
5、实现管理员值班表
6、实现代领时间范围维护(若准备超出领取时间,则发送短信催促)

二、运行环境

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 : 50528
Source Host           : localhost:3306
Source Database       : expressdb

Target Server Type    : MYSQL
Target Server Version : 50528
File Encoding         : 65001

Date: 2022-03-16 17:08:05
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for daytb
-- ----------------------------
DROP TABLE IF EXISTS `daytb`;
CREATE TABLE `daytb` (
  `dayId` int(11) NOT NULL AUTO_INCREMENT,
  `dayUserId` varchar(11) DEFAULT NULL,
  `dayUserName` varchar(255) DEFAULT NULL,
  `dayDate` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`dayId`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of daytb
-- ----------------------------
INSERT INTO `daytb` VALUES ('5', '109', '小明', '2022-03-17');
INSERT INTO `daytb` VALUES ('6', '109', '小明', '2022-03-19');
INSERT INTO `daytb` VALUES ('7', '109', '小明', '2022-03-21');

-- ----------------------------
-- Table structure for imagetb
-- ----------------------------
DROP TABLE IF EXISTS `imagetb`;
CREATE TABLE `imagetb` (
  `imageId` int(11) NOT NULL AUTO_INCREMENT,
  `imageInfor` varchar(255) DEFAULT NULL,
  `imageImg` varchar(255) DEFAULT NULL,
  `imageUserId` varchar(255) DEFAULT NULL,
  `imageUserName` varchar(255) DEFAULT NULL,
  `imageTime` varchar(100) DEFAULT NULL,
  `imageRealName` varchar(255) DEFAULT NULL,
  `imageRealPhone` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`imageId`)
) ENGINE=InnoDB AUTO_INCREMENT=37 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of imagetb
-- ----------------------------
INSERT INTO `imagetb` VALUES ('35', '5', 'QQ截图20220209115502.jpg', '109', '小明', '2022-03-16 15:52', '小明', '15288889999');
INSERT INTO `imagetb` VALUES ('36', '8', 'QQ截图20220209115515.jpg', '109', '小明', '2022-03-16 16:08', '小红花', '15249241001');

-- ----------------------------
-- Table structure for remarkstb
-- ----------------------------
DROP TABLE IF EXISTS `remarkstb`;
CREATE TABLE `remarkstb` (
  `remarksId` int(11) NOT NULL AUTO_INCREMENT,
  `remarksName` varchar(255) DEFAULT NULL,
  `remarksInfor` varchar(255) DEFAULT NULL,
  `remarksUserId` int(11) DEFAULT NULL,
  `remarksTime` varchar(100) DEFAULT NULL,
  `remarksFlag` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`remarksId`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of remarkstb
-- ----------------------------
INSERT INTO `remarkstb` VALUES ('4', '1-1', null, '109', '2022-03-14 14:46', '2');
INSERT INTO `remarkstb` VALUES ('5', '15212345698', '1-1', '109', '2022-03-14 15:02', '1');
INSERT INTO `remarkstb` VALUES ('6', '1-2', null, '109', '2022-03-14 15:04', '2');
INSERT INTO `remarkstb` VALUES ('7', '1-3', null, '109', '2022-03-14 15:04', '2');
INSERT INTO `remarkstb` VALUES ('8', '15249248888', '1-2', '109', '2022-03-14 15:05', '1');
INSERT INTO `remarkstb` VALUES ('9', '15249241008', '1-3', '109', '2022-03-16 16:51', '1');

-- ----------------------------
-- Table structure for token
-- ----------------------------
DROP TABLE IF EXISTS `token`;
CREATE TABLE `token` (
  `tid` int(100) NOT NULL AUTO_INCREMENT,
  `uid` varchar(100) CHARACTER SET utf8 NOT NULL,
  `utoken` varchar(500) CHARACTER SET utf8 NOT NULL,
  PRIMARY KEY (`tid`)
) ENGINE=InnoDB AUTO_INCREMENT=153 DEFAULT CHARSET=latin1;

-- ----------------------------
-- Records of token
-- ----------------------------
INSERT INTO `token` VALUES ('140', '103', 'mRHEEi/RNNnCAUsC1qH4Rt7hLHOyXDZkRMJ0giwZZq0=@4ixh.cn.rongnav.com;4ixh.cn.rongcfg.com');
INSERT INTO `token` VALUES ('141', '104', 'wzr+nt9zT+nCAUsC1qH4RpaqfFk72MwERMJ0giwZZq0=@4ixh.cn.rongnav.com;4ixh.cn.rongcfg.com');
INSERT INTO `token` VALUES ('142', '105', 'rJRUNQLo5RfCAUsC1qH4RhEYmFA2SEoXRMJ0giwZZq0=@4ixh.cn.rongnav.com;4ixh.cn.rongcfg.com');
INSERT INTO `token` VALUES ('143', '107', 'l+t213zhSFDCAUsC1qH4RnvHYZQyEXyWRMJ0giwZZq0=@4ixh.cn.rongnav.com;4ixh.cn.rongcfg.com');
INSERT INTO `token` VALUES ('144', '108', '410+eC84tRfCAUsC1qH4Rnua6oerg5KeRMJ0giwZZq0=@4ixh.cn.rongnav.com;4ixh.cn.rongcfg.com');
INSERT INTO `token` VALUES ('145', '109', 'qUhVLBfskPfCAUsC1qH4RgWB33qAKI6VRMJ0giwZZq0=@4ixh.cn.rongnav.com;4ixh.cn.rongcfg.com');
INSERT INTO `token` VALUES ('146', '110', 'SdZWweWCOQPCAUsC1qH4RjpKluxEXM7RRMJ0giwZZq0=@4ixh.cn.rongnav.com;4ixh.cn.rongcfg.com');
INSERT INTO `token` VALUES ('147', '111', 'hsOZccsK03jCAUsC1qH4RtuXeJfdFF3ZRMJ0giwZZq0=@4ixh.cn.rongnav.com;4ixh.cn.rongcfg.com');
INSERT INTO `token` VALUES ('148', '112', '3VSpiIwAsnrCAUsC1qH4Ruy6aTl8zdvhRMJ0giwZZq0=@4ixh.cn.rongnav.com;4ixh.cn.rongcfg.com');
INSERT INTO `token` VALUES ('149', '113', 'WBV8pdFwi8PCAUsC1qH4RjwstDGYjV1TRMJ0giwZZq0=@4ixh.cn.rongnav.com;4ixh.cn.rongcfg.com');
INSERT INTO `token` VALUES ('150', '114', 'jKFEMeIeepjCAUsC1qH4RrghwBMRrDhCRMJ0giwZZq0=@4ixh.cn.rongnav.com;4ixh.cn.rongcfg.com');
INSERT INTO `token` VALUES ('151', '115', 'Uq/Tj7VfO1/CAUsC1qH4RrAteNwisvcgRMJ0giwZZq0=@4ixh.cn.rongnav.com;4ixh.cn.rongcfg.com');
INSERT INTO `token` VALUES ('152', '116', 'qB5wp0DpH27CAUsC1qH4RpqNnePbkNT/RMJ0giwZZq0=@4ixh.cn.rongnav.com;4ixh.cn.rongcfg.com');

-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `uid` int(255) NOT NULL AUTO_INCREMENT,
  `uname` varchar(200) CHARACTER SET utf8 DEFAULT NULL,
  `uphone` varchar(100) CHARACTER SET utf8 DEFAULT NULL,
  `upswd` varchar(200) CHARACTER SET utf8 DEFAULT NULL,
  `utime` varchar(300) CHARACTER SET utf8 DEFAULT NULL,
  PRIMARY KEY (`uid`)
) ENGINE=InnoDB AUTO_INCREMENT=128 DEFAULT CHARSET=latin1;

-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('106', 'admin', 'admin', '123456', '2022-03-16 16:08');
INSERT INTO `user` VALUES ('109', '小明', '15249243001', '123456', '2022-03-16 16:08');
INSERT INTO `user` VALUES ('118', '小王', '15249248001', '123456', '2022-03-16 16:08');
INSERT INTO `user` VALUES ('120', '小李', '15249240001', '123456', '2022-03-16 16:08');
INSERT INTO `user` VALUES ('121', '小张', '15249240002', '123456', '2022-03-16 16:08');
INSERT INTO `user` VALUES ('122', '小泡泡', '15249240003', '123456', '2022-03-16 16:08');
INSERT INTO `user` VALUES ('127', '小哦哦', '15249246611', null, '2022-03-16 17:04');

五、部分代码

1:添加快递信息代码

public class CreateMessageActivity extends BaseActivity {

    // title
    private TextView mTvTitle;
    // 返回
    private ImageView mIvBack;
    // 查询按钮
    private Button mbtnAdd;

    private EditText metMoney;

    private List<RemarkModel> mlistData = new ArrayList<RemarkModel>();
    private DialogListMsg dialogListMsg;
    private PractitionersAdapter listaAdapter;
    private TextView mtvStart;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_create_message);
        initWidget();
        initData();
    }

    @Override
    public void initWidget() {

        dialogListMsg = new DialogListMsg(this);
        dialogListMsg.setTitle().setText("请选择货架编号");

        listaAdapter = new PractitionersAdapter(this);
        mtvStart = (TextView) findViewById(R.id.mtvStart);
        mtvStart.setOnClickListener(this);


        metMoney = (EditText) findViewById(R.id.metMoney);

        mbtnAdd = (Button) findViewById(R.id.mbtnAdd);
        mIvBack = (ImageView) findViewById(R.id.mIvBack);
        mTvTitle = (TextView) findViewById(R.id.mTvTitle);
        mTvTitle.setText("添加快递信息");
        mIvBack.setVisibility(View.VISIBLE);
        mIvBack.setOnClickListener(this);
        mbtnAdd.setOnClickListener(this);


    }


    @Override
    public void onClick(View v) {

        switch (v.getId()) {
            case R.id.mIvBack:
                CreateMessageActivity.this.finish();
                break;

            case R.id.mtvStart:

                dialogListMsg.Show();

                break;

            case R.id.mbtnAdd:


                createTopicPost(true);
                break;
        }
    }

    private int posIndex = 0;

    @Override
    public void initData() {
        // 数据的获取

        listNewsPhoneMessage(false);


        dialogListMsg.show_listview().setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int pos, long arg3) {
                dialogListMsg.Close();
                posIndex = pos;
                mtvStart.setText(mlistData.get(pos).getRemarksName());
            }
        });

        dialogListMsg.submit_no().setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                dialogListMsg.Close();
            }
        });
    }



    private void createTopicPost(boolean isShow) {
        AjaxParams params = new AjaxParams();
        params.put("action_flag", "addRemarks");
        params.put("remarksName", metMoney.getText().toString());
        params.put("remarksInfor", mtvStart.getText().toString());
        params.put("remarksUserId", MemberUserUtils.getUid(this));
        params.put("remarksFlag","1");
        httpPost(Consts.URL + Consts.APP.MessageAction, params, Consts.actionId.resultCode, isShow, "正在注册...");
    }
    private void listNewsPhoneMessage(boolean isShow) {
        AjaxParams params = new AjaxParams();
        params.put("action_flag", "listRemarks");
        params.put("userId", MemberUserUtils.getUid(this));
        params.put("remarksFlag","2");
        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:
                if (null != entry.getData() && !TextUtils.isEmpty(entry.getData())) {

                    String jsonMsg = entry.getData().substring(1, entry.getData().length() - 1);


                    if (null != jsonMsg && !TextUtils.isEmpty(jsonMsg)) {
                        mlistData = mGson.fromJson(entry.getData(), new TypeToken<List<RemarkModel>>() {
                        }.getType());
                        listaAdapter.setData(mlistData);
                        dialogListMsg.show_listview().setAdapter(listaAdapter);
                        listaAdapter.notifyDataSetChanged();

                    }

                }

                break;
            case Consts.actionId.resultCode:

                ToastUtil.show(CreateMessageActivity.this, entry.getRepMsg());
                new Handler().postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        finish();
                    }
                }, 2000);
                break;


        }

    }



}
2:添加快递货架代码


public class CreateAddressActivity extends BaseActivity {

    // title
    private TextView mTvTitle;
    // 返回
    private ImageView mIvBack;
    // 查询按钮
    private Button mbtnAdd;

    private EditText metMoney;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_create_address);
        initWidget();
        initData();
    }

    @Override
    public void initWidget() {

        metMoney = (EditText) findViewById(R.id.metMoney);

        mbtnAdd = (Button) findViewById(R.id.mbtnAdd);
        mIvBack = (ImageView) findViewById(R.id.mIvBack);
        mTvTitle = (TextView) findViewById(R.id.mTvTitle);
        mTvTitle.setText("添加快递货架");
        mIvBack.setVisibility(View.VISIBLE);
        mIvBack.setOnClickListener(this);
        mbtnAdd.setOnClickListener(this);


    }


    @Override
    public void onClick(View v) {

        switch (v.getId()) {
            case R.id.mIvBack:
                CreateAddressActivity.this.finish();
                break;


            case R.id.mbtnAdd:


                createTopicPost(true);
                break;
        }
    }

    private int posIndex = 0;

    @Override
    public void initData() {
        // 数据的获取


    }



    private void createTopicPost(boolean isShow) {
        AjaxParams params = new AjaxParams();
        params.put("action_flag", "addRemarksNumber");
        params.put("remarksName", metMoney.getText().toString());
        params.put("remarksFlag","2");
        params.put("remarksUserId", MemberUserUtils.getUid(this));
        httpPost(Consts.URL + Consts.APP.MessageAction, params, Consts.actionId.resultCode, isShow, "正在注册...");
    }


    @Override
    protected void callBackSuccess(ResponseEntry entry, int actionId) {
        super.callBackSuccess(entry, actionId);

        switch (actionId) {


            case Consts.actionId.resultCode:

                ToastUtil.show(CreateAddressActivity.this, entry.getRepMsg());
                new Handler().postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        finish();
                    }
                }, 2000);
                break;


        }

    }



}

六、浏览更多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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Android毕业设计源码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值