• 系统-用户管理


    1、功能

    新增用户

    修改用户

    删除用户

    用户列表

    用户详情

    重置密码

    2、数据库表设计

    sys_user_info   用户信息表

    sys_user_role   用户角色关联表

    sys_role_info    角色信息表

    用户是在角色下面的

    3、流程

    (1)新增用户

    判断唯一性,看需要哪个字段是唯一的,在插入之前需要先查数据库

    添加用户表

    添加用户角色表

    (2)修改用户

    更新用户表

    对于用户角色表,可以选择先删除后添加

    对用户禁用时,需要将token从redis缓存中去除

    (3)删除用户

    删除用户角色表(若想保留信息,可添加状态标志,置位即可)

    删除用户表(现在用的逻辑删除,将删除标志位置1)

    删除用户也需要将token删掉

    (4)重置密码

    更新用户表密码字段

    删除redis中用户密码错误技术计数

    4、细节,知识点

    (1)对于数据库的新增字段,在代码中所对应的实体、xml映射中都需要添加上

    (2)对于代码中的魔法值,需避免,可以写成常量或者枚举类。

           对于常量,可以写在常量中,也可以写在配置表中。

    1. package com.gykj.config;
    2. public enum UserStatusEnum {
    3. FORBIDEN(0,"禁用"),
    4. NORMAL(1,"正常");
    5. private Integer key;
    6. private String value;
    7. UserStatusEnum(Integer key, String value) {
    8. this.key = key;
    9. this.value = value;
    10. }
    11. public Integer getKey() {
    12. return key;
    13. }
    14. public void setKey(Integer key) {
    15. this.key = key;
    16. }
    17. public String getValue() {
    18. return value;
    19. }
    20. public void setValue(String value) {
    21. this.value = value;
    22. }
    23. }

    (3)对于入参,有两种,一种是单个单数的,可以加@RequestParam,一种是json形式的,可以加@RequestBody

            对于出参,我们都是封装了一个返回包,这需要在接口上添加@ResponseBody,否则接口返回会404

    (4)各种数据类型的判空

    Byte   timestamp的判空只需判null

    1. Byte status;
    2. <if test = "status!=null">
    3. Date modifyTime;
    4. <if test = "modifyTime != null">

    5、体会

    前期的设计还是非常重要的,要考虑到方方面面。比如重置密码中需要将redis中错误次数删掉。删除用户,禁用启用时将redis中token删掉,让其不让登录。这都是需要积累的

    还有就是,多写代码啊!!!熟能生巧,你写的太少了

  • 相关阅读:
    Ps:红眼工具
    xctf very_easy_sql
    【Java 进阶篇】JQuery 遍历:发现元素的魔法之旅
    MSYS2 介绍、下载与安装、Pacman常用命令
    HTML的学习-通过创建相册WEB学习HTML-第一部分
    追风者变引领者:Horwin的技术攀爬
    交换机与路由器技术:链路聚合、生成树协议STP和生成树协议配置
    POJ1064Cable master题解
    C# 编写一个简单易用的 Windows 截屏增强工具
    javaWebssh旅游论坛系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计
  • 原文地址:https://blog.csdn.net/qq_35366466/article/details/126180891