文章目录
一、需求分析
一旦我们与合作商达成协议,确定了合作的细节和点位,我们就可以安排工作人员去投放智能售货机了。这些点位将成为我们智能售货机的“家”,为消费者提供便捷的购买服务。
二、涉及点位管理的业务流程
- 登录系统:后台管理人员登录后台系统
- 新增区域: 后台管理人员可以添加区域范围,区域范围与运维/运维人员挂钩,区域下可关联点位。
- 新增合作商: 管理人员可以添加合作商,合作商与点位进行关联。
- 新增区域点位: 后台管理人员可以在特定区域内新增点位,这些点位是放置智能售货机的具体位置。
- 业务流程图:
三、数据库和数据表的设计
(1)区域管理
区域表主要字段
主键id、区域名称、备注说明
区域管理相关页面原型
列表展示页面:
新增页面:
删除页面:
详情页面:
(2)合作商管理
合作商表主要字段
主键id、合作商名称、联系人、联系电话、分成比例、账号、密码
合作商管理相关页面原型
列表展示页面:
新增页面:
删除页面:
修改页面:
重置密码页面:
(3)点位管理
点位表主要字段
主键id、点位名称、详细地址、商圈类型(设置为数据字典)、区域外键、合作商外键
点位管理相关页面原型
列表展示页面:
新增页面:
删除页面:
详情页面:
使用建表语句创建三张表,区域表,合作商表,点位表。
CREATE TABLE `tb_region` (
`id` INT AUTO_INCREMENT COMMENT '主键id' PRIMARY KEY,
`region_name` VARCHAR(255) NOT NULL COMMENT '区域名称',
`create_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`create_by` VARCHAR(64) COMMENT '创建人',
`update_by` VARCHAR(64) COMMENT '修改人',
`remark` TEXT COMMENT '备注'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='区域表';
-- 插入测试数据
INSERT INTO `tb_region` (`region_name`,`remark`) VALUES ('北京市朝阳区','北京市朝阳区'), ('北京市海淀区','北京市海淀区'), ('北京市东城区','北京市东城区');
CREATE TABLE `tb_partner` (
`id` INT AUTO_INCREMENT COMMENT '主键id' PRIMARY KEY,
`partner_name` VARCHAR(255) NOT NULL COMMENT '合作商名称',
`contact_person` VARCHAR(64) COMMENT '联系人',
`contact_phone` VARCHAR(15) COMMENT '联系电话',
`profit_ratio` INT COMMENT '分成比例',
`account` VARCHAR(64) COMMENT '账号',
`password` VARCHAR(64) COMMENT '密码',
`create_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`create_by` VARCHAR(64) COMMENT '创建人',
`update_by` VARCHAR(64) COMMENT '修改人',
`remark` TEXT COMMENT '备注'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='合作商表';
-- 插入测试数据
INSERT INTO `tb_partner` (`partner_name`, `contact_person`, `contact_phone`, `profit_ratio`, `account`, `password`) VALUES
('合作商A', '张三', '13800138000', 30, 'a001', 'pwdA'),
('合作商B', '李四', '13912345678', 25, 'b002', 'pwdB');
CREATE TABLE `tb_node` (
`id` INT AUTO_INCREMENT COMMENT '主键id' PRIMARY KEY,
`node_name` VARCHAR(255) NOT NULL COMMENT '点位名称',
`address` VARCHAR(255) NOT NULL COMMENT '详细地址',
`business_type` INT COMMENT '商圈类型',
`region_id` INT COMMENT '区域ID',
`partner_id` INT COMMENT '合作商ID',
`create_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`create_by` VARCHAR(64) COMMENT '创建人',
`update_by` VARCHAR(64) COMMENT '修改人',
`remark` TEXT COMMENT '备注',
FOREIGN KEY (`region_id`) REFERENCES `tb_region`(`id`) ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (`partner_id`) REFERENCES `tb_partner`(`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='点位表';
-- 插入测试数据
-- 假设区域ID为1对应'北京市朝阳区',合作商ID为1对应'合作商A'
INSERT INTO `tb_node` (`node_name`, `address`, `business_type`, `region_id`, `partner_id`) VALUES
('三里屯点位', '北京市朝阳区三里屯路', 1, 1, 1),
('五道口点位', '北京市海淀区五道口', 2, 2, 2);
四、点位相关代码生成
方法
使用若依代码生成器,生成区域管理、合作商管理、点位管理前后端基础代码,并导入到项目中。
步骤
创建目录菜单
添加数据字典
先添加字典
再添加字典标签和字典值,刚创建的字典在第二页,找到点击下面箭头指的地方
点击新增,添加如下几个字典值
配置代码生成信息
(1)找到代码生成器
(2)导入之前创建的区域表、合作商表、点位表
(3)配置这三张表的生成信息
- 区域表
点击编辑图标,然后依次配置接下来三部分的信息
首先是基本信息,其中要把实体类前面的Tb去掉,然后作者改成自己(可改可不改,默认是ruoyi)
然后是字段信息,这个界面的配置要参考页面原型。
最后是生成信息,其中生成个包路径默认是com.dkd.system,我们得换成com.dkd.manage,因为之后的业务代码都是写在dkd-manage中,生成模块名也改为manage,生成业务名不需要改,生成功能名是最终在页面展示时显示的,所以改为区域管理,上级菜单选点位管理,最后点提交就行
另外两张表与上面的步骤一样,就不列出来了。
- 下载代码并导入到项目中
(1)全选然后点击生成按钮
下载后的文件如下
(2)将下载的三个sql文件导入到数据库中,导入后在sys_menu表会出现如下字段
根据页面原型,进入菜单管理,调整点位管理下面三个子页面的顺序
接下来导入前端的环境,前端的文件是下载文件中的vue文件,api存放是是请求的js文件,views存放的是视图组件。
打开api文件,复制到前端代码中的src下面的api中,如图所示
同理,打开views文件,将里面的manage文件复制到前端代码中的
到此为止,前端代码已经复制完成,接下来弄后端,打开main文件
其中java文件夹存放的是三层架构加实体类的内容,resources文件夹存放的是xml的映射文件。分别将这两个文件复制粘贴到后期代码对应的位置。
这里有个注意的点,如果粘贴后IDEA右下角提示Externally added files can addad to Git,由于我们是外部复制的内容,所以一定要选择Always Add选项,这样文件才不会爆红,其中.gitkeep文件不用管,只起到一个占位的作用。
到此,一切准备就绪,启动后端项目
运行前端项目,登录之后进入点位管理,发现已经能够正常显示界面内容了。
测试一下查询功能,没问题
到此,点位管理这块的基础功能已经实现,才发现已经快到凌晨三点半了哈哈,晚上写代码心能静下来,但是发现和原型不一样,需要对着页面原型改造一下,所以接下来请依次看下面几篇文章:
帝可得项目之点位管理之区域管理,帝可得项目之点位管理之合作商管理,帝可得项目之点位管理之点位管理。