码迷,mamicode.com
首页 > 编程语言 > 详细

关于写SpringBoot+Mybatisplus+Shiro项目的经验分享一:需求介绍

时间:2020-06-10 12:56:12      阅读:66      评论:0      收藏:0      [点我收藏+]

标签:英雄   private   16px   ESS   tis   nbsp   ORC   end   etc   

这次我尝试写一个原创的项目 the_game

  框架选择: SpringBoot+Mybatisplus+Shiro

 

首先是简单的需求介绍(素材灵感来自英雄联盟)

5个关键的表:

  admin(管理员):

技术图片

  

  lol(英雄):

技术图片

 

   lol_forces(势力):

技术图片

 

   lol_occupation(职业):

技术图片

 

   lol_routes(分路):

技术图片

 

其中英雄表中的 force_id 为int类型,必须通过查找 lol_forces 才能得到具体势力名

occupation_one、occupation_two 为int类型,必须通过查找 lol_occupation 才能得到具体职业名

route_one、route_two 为int类型,必须通过查找 lol_routes 才能得到具体分路名

Gender(性别):使用枚举的方式

 

因为使用了MybatisPlus,所以减轻了很多写Sql的负担,并且增加了 逻辑删除, 主键策略, 枚举等工具

实体类(都使用了Lombok):

LoL 

package com.zy.entity.lol;

import com.baomidou.mybatisplus.annotation.*;
import com.zy.enums.GenderEnum;
import lombok.Data;

import java.util.Date;

@Data
@TableName(value = "lol")
/**
 * 英雄联盟实体类
 */
public class Lol {

    //英雄编号,主键
    //采用手动赋值方式
    @TableId(type = IdType.INPUT)
    private Integer hId;

    //英雄称号
    @TableField(value = "designation")
    private String designation;

    //英雄名
    @TableField(value = "hero_name")
    private String heroName;

    //性别,采用枚举的方式
    @TableField(value = "gender")
    //private Integer gender;
    private GenderEnum gender;

    //势力编号,可以查询forces表得到
    @TableField(value = "force_id")
    private Integer forceId;

    //主要职业编号,可以查询forces表得到
    @TableField(value = "occupation_one")
    private Integer occupationOne;

    //次要职业编号,可以查询forces表得到
    @TableField(value = "occupation_two")
    private Integer occupationTwo;

    //推荐分路一,可以查询routes表得到
    @TableField(value = "route_one")
    private Integer routeOne;

    //推荐分路二,可以查询routes表得到
    @TableField(value = "route_two")
    private Integer routeTwo;

    //逻辑删除
    @TableLogic
    private Integer deleted;

    //创建时间
    @TableField(value = "create_time",fill = FieldFill.INSERT)
    private Date createTime;

    //更新时间
    @TableField(value = "update_time",fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;

}

 

lolForces:
@Data
@TableName(value = "lol_forces")
/**
 * lol的势力实体类
 */
public class LolForces {

    //势力编号,主键
    //采用手动赋值方式
    @TableId(type = IdType.INPUT)
    private Integer fId;

    //势力名
    @TableField(value = "f_name")
    private String fName;

}

LolOccupation:
@Data
@TableName(value = "lol_occupation")
/**
 * lol的职业实体类
 */
public class LolOccupation {

    //职业编号,主键
    //采用默认方式
    @TableId
    private Integer hcId;

    //职业名(英文)
    @TableField(value = "name_us")
    private String nameUs;

    //职业名(中文)
    @TableField(value = "name_cn")
    private String nameCn;

}

LolRoutes:

 

@Data
@TableName(value = "lol_routes")
/**
 * lol的分路实体类
 */
public class LolRoutes {

    //分路编号,主键
    //采用手动赋值方式
    @TableId(type = IdType.INPUT)
    private Integer rId;

    //分路名
    @TableField(value = "route")
    private String route;
}

GenderEnum枚举
package com.zy.enums;

import com.baomidou.mybatisplus.annotation.EnumValue;

public enum GenderEnum {
    男(0,"男"),
    女(1,"女");

    GenderEnum(Integer code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public Integer getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }

    @EnumValue
    private Integer code;
    private String msg;

}

 

管理lol表 是此项目的核心,其中admin(管理员)拥有CRUD的权限,而未登录的游客只可以进行查找

 在呈现数据时,采用分页的方式,并且页面通过session判断是否登录,从而呈现不同的按钮, 比如增删改的按钮游客不可见

 

效果初览(游客视角):

技术图片

 

 

  

关于写SpringBoot+Mybatisplus+Shiro项目的经验分享一:需求介绍

标签:英雄   private   16px   ESS   tis   nbsp   ORC   end   etc   

原文地址:https://www.cnblogs.com/kzyuan/p/13083795.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!