2.点位管理——帝可得后台管理系统

目录

  • 前言
  • 点位管理菜单模块
    • 1.需求说明
    • 2.库表设计
    • 3.生成基础代码
      • 0 .使用若依代码生成器最终目标
      • 1.创建点位管理
      • 2.添加数据字典
      • 3.配置代码生成信息
      • 4.下载代码并导入项目
    • 4.优化菜单——点位管理
      • 1.优化区域管理
      • 2.增加点位数
      • 3. 合作商

前言

提示:本篇介绍点位管理模块,需求分析——建表设计——前后端代码生成——代码优化


点位管理菜单模块

1.需求说明

  • 业务场景: 首先,我们需要确定几个有潜力的区域,这些区域可能是人流量大、消费能力高的商业区或居民区。然后,我们要与这些区域内的潜在合作商进行洽谈,比如商场、写字楼、学校等地方的管理者或所有者。一旦我们与合作商达成协议,确定了合作的细节和点位,我们就可以安排工作人员去投放智能售货机了。这些点位将成为我们智能售货机的“家”,为消费者提供便捷的购买服务。

  • 分析设计模块和业务流程:

点位管理主要涉及到三个功能模块,业务流程如下:

  1. 登录系统:后台管理人员登录后台系统
  2. 新增区域: 后台管理人员可以添加区域范围,区域范围与运维/运维人员挂钩,区域下可关联点位。
  3. 新增合作商: 管理人员可以添加合作商,合作商与点位进行关联。
  4. 新增区域点位: 后台管理人员可以在特定区域内新增点位,这些点位是放置智能售货机的具体位置。
    在这里插入图片描述

2.库表设计

表的设计涉及到页面原型,根据页面原型设计表结构;
完整的页面原型如下:页面原型,下图中只是截取了重要的而部分;

  • 区域管理页面原型:
    在这里插入图片描述
  • 点位管理页面原型:
    在这里插入图片描述
  • 合作商管理页面原型:
    在这里插入图片描述
  • 根据上图进行分析:得到三个表;
1,区域表:字段有主键id、区域名称
2,合作商表:字段有主键id、合作商名称、联系人、联系电话、分成比例(int类型)、账号、密码
3,点位表:字段有主键id、点位名称、详细地址、商圈类型(int类型)
  • 根据表信息,使用AI进行表结构创建,提示词如下:
你是一位软件工程师,帮我生成MySQL的表结构
需求如下:
1,区域表,表名tb_region,字段有主键id、区域名称
2,合作商表,表名tb_partner,字段有主键id、合作商名称、联系人、联系电话、分成比例(int类型)、账号、密码
3,点位表,表名tb_node,字段有主键id、点位名称、详细地址、商圈类型(int类型)
其他要求:
1,每张表中都有创建时间(create_time)、修改时间(date_time)、创建人(create_by)、修改人(update_by)、备注(remark)这些字段
2,每张表的主键都是自增的
3,区域与点位是一对多的关系,合作商与点位是一对多的关系,请用字段表示出来,并建立外键约束
4,请为所有字段都添加上comment
5,帮我给生成的表中插入一些北京城市相关区域、点位、合作商的测试数据```
  • 生成内容 如下:
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);

3.生成基础代码

0 .使用若依代码生成器最终目标

在这里插入图片描述

1.创建点位管理

在这里插入图片描述

2.添加数据字典

先创建商圈的字典类型
再创建商圈的字典数据
在这里插入图片描述

3.配置代码生成信息

导入三张表
在这里插入图片描述

配置合作商表(参考原型)
在这里插入图片描述

配置区域表(参考原型)

在这里插入图片描述

配置点位表(参考原型)

在这里插入图片描述

4.下载代码并导入项目

选中三张表生成下载

在这里插入图片描述

解压ruoyi.zip得到前后端代码和动态菜单sql
在这里插入图片描述

代码导入
在这里插入图片描述
在这里插入图片描述

调整二级菜单显示顺序

在这里插入图片描述

4.优化菜单——点位管理

1.优化区域管理

修改主键id,删除操图案;
在这里插入图片描述
优化后:
在这里插入图片描述

2.增加点位数

  • 前端修改
    在这里插入图片描述

  • 后端修改

  1. Mysql语句创建:
-- 传统模式
-- 1.先聚合统计每个区域下的点位数
-- 确定查询表 tb_node
-- 确定分组字段 region_id
select region_id,count(*) as node_count from tb_node group by region_id;
-- 2.然后与区域表进行关联查询
select r.id,r.region_name,r.remark,ifnull(n.node_count,0) as node_count from tb_region rleft join (select region_id,count(*) as node_count from tb_node group by region_id) n on r.id=n.region_id;-- AI辅助编程模式
-- 查询区域表所有的信息,需要显示每个区域的点位数
SELECT r.*, COUNT(n.id) AS node_count FROM tb_region r LEFT JOIN tb_node n ON r.id = n.region_id GROUP BY r.id;
  1. 创建实体类
    在这里插入图片描述

  2. 创建RegionMapper以及RegionMapper.xml

/*** 查询区域管理列表* @param region* @return RegionVo集合*/
public List<RegionVo> selectRegionVoList(Region region);
<select id="selectRegionVoList" resultType="com.dkd.manage.domain.vo.RegionVo">select r.id,r.region_name,r.remark,ifnull(n.node_count,0) as node_count from tb_region rleft join (select region_id,count(*) as node_count from tb_node group by region_id) n on r.id=n.region_id<where><if test="regionName != null  and regionName != ''"> and r.region_name like concat('%', #{regionName}, '%')</if></where></select>
  1. 修改IRegionService接口以及实现类
/*** 查询区域管理列表* @param region* @return RegionVo集合*/
public List<RegionVo> selectRegionVoList(Region region);
/*** 查询区域管理列表* @param region* @return RegionVo集合*/
@Override
public List<RegionVo> selectRegionVoList(Region region) {return regionMapper.selectRegionVoList(region);
}
  1. 修改RegionControlller类
/*** 查询区域管理列表*/
@PreAuthorize("@ss.hasPermi('manage:region:list')")
@GetMapping("/list")
public TableDataInfo list(Region region)
{startPage();List<RegionVo> voList = regionService.selectRegionVoList(region);return getDataTable(voList);
}

3. 合作商

  1. 调整字段顺序

  2. 分成比例展示为百分之形式

  3. 删除 操作中修改/删改前的图标
    1-3 操作如下图
    在这里插入图片描述

  4. 新增时不展示明文密码

  5. 修改时显示创建时间字段

  6. 新增和删除时展示界面不同
    4-6操作如下图
    在这里插入图片描述

  7. 数据库种的密码展示应为加密类型
    在这里插入图片描述
    最终效果如下图:id=5 密码不展示明文
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1550462.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

[论文精读]AI-Guardian: Defeating Adversarial Attacks using Backdoors

会议名称&#xff1a;2023 IEEE Symposium on Security and Privacy (SP) 发布链接&#xff1a;AI-Guardian: Defeating Adversarial Attacks using Backdoors | IEEE Conference Publication | IEEE Xplore 中文译名&#xff1a;AI-Guardian:利用后门防御对抗攻击 阅读原因…

记一次教学版内网渗透流程

信息收集 如果觉得文章写的不错可以共同交流 http://aertyxqdp1.target.yijinglab.com/dirsearch dirsearch -u "http://aertyxqdp1.target.yijinglab.com/"发现 http://aertyxqdp1.target.yijinglab.com/joomla/http://aertyxqdp1.target.yijinglab.com/phpMyA…

IT基础监控范围和对象

监控易作为一款由美信时代独立自主研发的分布式一体化集中监控平台&#xff0c;其监控范围极为广泛&#xff0c;几乎涵盖了所有主流的IT基础设施以及相关的设备和系统。以下是对监控易监控范围的详细介绍&#xff1a; 一、IT基础资源监控 服务器硬件监控&#xff1a;监控易支…

fmql之Linux阻塞和非阻塞IO

继续学习正点原子吧。 概念简介 什么是阻塞、非阻塞IO 阻塞/非阻塞访问的代码示例 等待队列&#xff08;阻塞访问使用&#xff09; 轮询&#xff08;非阻塞访问使用&#xff09; poll操作函数的使用&#xff08;轮询的一种&#xff09; 阻塞IO的实验 blockio.c blockioAPP.c 运…

大模型能力扩展之——提示词(Prompt),知识库,思维链(CoT)和Agent(代理)

前言 “大模型的推理能力配合外部工具才能真正发挥大模型的作用” 在学习和使用大模型的过程中&#xff0c;我们会发现大模型只能用来进行一下简单的问答&#xff1b;一旦涉及到复杂的问题&#xff0c;大模型就无能为力了。 其原因就在于我们并不会使用大模型&#xff0c;或…

【韩顺平Java笔记】第3章:变量

只记录我觉得重点的&#xff0c;自用&#xff0c;如果有漏的请自己看视频 文章目录 33. 内容梳理34. 变量原理34.1 为什么需要变量35. 变量概念35.1 概念35.2 变量使用的基本步骤36. 变量入门36.1 变量使用入门案例 37. 变量细节37.1 变量使用注意事项 38. 加号使用38.1 程序中…

Node.js安装Express,Node.js支持Typescript以及Express支持Typescript的步骤

1. Node.js 安装Express 运行如下命令&#xff1a; $ mkdir express-demo $ cd express-demo$ npm install express $ npm install body-parser //(可选)中间件&#xff0c;用于处理 JSON, Raw, Text 和 URL 编码的数据 $ npm install cookie-parser //(可选)通过req.cookies…

如何使用ssm实现大学生校园招聘网的设计与实现

TOC ssm738大学生校园招聘网的设计与实现jsp 第1章 绪论 1.1 课题背景 二十一世纪互联网的出现&#xff0c;改变了几千年以来人们的生活&#xff0c;不仅仅是生活物资的丰富&#xff0c;还有精神层次的丰富。在互联网诞生之前&#xff0c;地域位置往往是人们思想上不可跨域…

网页WebRTC电话和软电话哪个好用?

关于WebRTC电话与软件电话哪个更好用&#xff0c;这实际上取决于多个因素&#xff0c;并没有一个绝对的答案。不过&#xff0c;我可以根据WebRTC技术的一些特点&#xff0c;以及与传统软件电话相比的优劣势&#xff0c;为你提供一个清晰的对比。 首先&#xff0c;让我们了解一下…

单细胞miloR分析(基于 KNN 图的细胞差异丰度分析方法)

通常情况下&#xff0c;对两组或多组样本进行了不同处理/干预之后&#xff0c;研究者首先会进行同种细胞亚群处理前后的细胞数量的比较&#xff0c;但在单细胞分辨率时代之后&#xff0c;即使是同一个亚群中的不同细胞也应当看成不同的样本。 那么问题就来了&#xff0c;既然应…

算法:按既定顺序创建目标数组

力扣1389 提示&#xff1a; 1 < nums.length, index.length < 100nums.length index.length0 < nums[i] < 1000 < index[i] < i 题解&#xff1a; class Solution {public int[] createTargetArray(int[] nums, int[] index) {int[] target new int[num…

SD2.0 Specification之CRC(Cyclic Redundancy Code)

文章目录 本文章主要讲解关于SD2.0中的CRC应用&#xff0c;其它基础概念和其它内容请参考以下文章。 SD2.0 Specification简述 CRC全称为Cyclic Redundancy Code&#xff0c;中文名称是循环冗余校验&#xff0c;该方法通过附加冗余数据来保证数据的完整性&#xff0c;即用于检…

RabbitMQ的高级特性-限流

消息分发: RabbitMQ队列拥有多个消费者时, 队列会把收到的消息分派给不同的消费者. 每条消息只会发送给订阅列表⾥的⼀个消费者. 这种⽅式⾮常适合扩展, 如果现在负载加重,那么只需要创建更多的消费者来消费处理消息即可. 默认情况下, RabbitMQ是以轮询的⽅法进⾏分发的, ⽽不管…

BetterAndBetter--Mac上强大的手势操控软件,让你的Mac更加得心应手

很多新人在开始使用Mac的时候&#xff0c;很难脱离鼠标操作&#xff0c;但是Mac的触摸板可以说是Mac的一大特色&#xff0c;能够完成非常多的操作&#xff0c;甚至在有些时候比鼠标更加的好用&#xff0c;那么新手该如何使用触摸板呢&#xff0c;BetterAndBetter可以帮助新手快…

Alternative Reconciliation Accounts 备选统驭科目

业务场景&#xff1a; #1 海外项目对于应付账款&#xff0c;超过1年期的需要转入到其他科目&#xff1b; #2. 通过备选统驭科目进行 从应付账款&#xff0c;到应付账款-长期的结转 备选统驭科目的使用与配置 备选统驭科目&#xff08;AlternativeReconciliation Accounts)就…

Dynamics 365 dependency EntityType

导解决方案时经常会碰到组件依赖导致导入报错&#xff0c;而错误提示中组件只有type, 比如下图中的type 20和60, 初看之下并不知道是什么意思&#xff0c;从parentDisplayName能看出来&#xff0c;这个parent是个实体&#xff0c;但实体中的什么呢&#xff0c;目测是看不出来的…

怎样用python+sqlalchemy获得mssql视图对应物理表关系(二)

话不多说 目标:为了实现低代码数据视图对接,有必要得到视图所对应物理表及字段名称,字段类型等 1)约束:视图中用到的物理表不能起别名,所以修改上一篇中存储过程建立语句 USE [agui_conn] GO /****** Object: StoredProcedure [dbo].[sp_GetOrdersByTimestamp] Script D…

生信机器学习入门4 - 构建决策树(Decision Tree)和随机森林(Random Forest)分类器

机器学习文章回顾 生信机器学习入门1 - 数据预处理与线性回归&#xff08;Linear regression&#xff09;预测 生信机器学习入门2 - 机器学习基本概念 生信机器学习入门3 - Scikit-Learn训练机器学习分类感知器 生信机器学习入门4 - scikit-learn训练逻辑回归&#xff08;L…

第五周做题总结_数据结构_队列与应用

id:43 A. DS队列之银行排队 题目描述 银行营业大厅共服务3种客户&#xff0c;类型为A\B\C&#xff0c;大厅分别设置了3个窗口分别服务三种客户&#xff0c;即每个窗口只服务一种客户。现有一批客户来银行办理业务&#xff0c;每个客户都有类型和办理业务时间。每个窗口按照客…

Servlet详细讲解(一篇就够)

目录 一、Servlet 1.1 Servlet介绍 1.2 HTTP 1.2.1 在http请求中有请求报文 1.2.2 在http响应中有响应报文 1.3 GET和POST 1.3.1 GET 1.3.2 POST 二、第一个Servlet程序[重点] 2.1 创建web项目 2.2 pom依赖 2.3 编写Servlet 2.4 配置Servlet 2.5 部署项目 2.6 启…