SpringBoot整合Vue仓库管理系统之User 业务模块
完善各层代码
Entity层
User类
@ApiModel(value="User对象", description="")
@NoArgsConstructor
@AllArgsConstructor
@Data
public class User implements Serializable {
 private static final long serialVersionUID = 1L;
 //默认自动主键策略,自增
 //ApiModelProperty:swagger的注解可以不写!!!!到后面升级再写!!!
 @ApiModelProperty(value = "主键")
 @TableId(value = "id", type = IdType.AUTO)
 private Integer id;
 
 @ApiModelProperty(value = "账号")
 private String no;
 
 @ApiModelProperty(value = "名字")
 private String name;
 @ApiModelProperty(value = "密码")
 private String password;
 @ApiModelProperty(value = "年龄")
 private Integer age;
 @ApiModelProperty(value = "性别")
 private Integer sex;
 @ApiModelProperty(value = "电话")
 private String phone;
 
 @ApiModelProperty(value = "角色 0超级管理员,1管理员,2普通账号")
 private Integer roleId;
 
 @ApiModelProperty(value = "是否有效,Y有效,其他无效")
 @TableField("isValid")
 private String isvalid;
}
Menu类
@ApiModel(value="Menu对象", description="")
@NoArgsConstructor
@AllArgsConstructor
@Data
public class Menu implements Serializable {
 private static final long serialVersionUID = 1L;
 @TableId(value = "id",type = IdType.AUTO)
 @ApiModelProperty(value = "主键")
 private Integer id;
 @ApiModelProperty(value = "菜单编码")
 @TableField("menuCode")
 private String menucode;
 @ApiModelProperty(value = "菜单名字")
 @TableField("menuName")
 private String menuname;
 @ApiModelProperty(value = "菜单级别")
 @TableField("menuLevel")
 private String menulevel;
 @ApiModelProperty(value = "菜单的父code")
 @TableField("menuParentCode")
 private String menuparentcode;
 @ApiModelProperty(value = "点击触发的函数")
 @TableField("menuClick")
 private String menuclick;
 @ApiModelProperty(value = "权限 0超级管理员,1表示管理员,2表示普通用户,可以用逗号组合使用")
 @TableField("menuRight")
 private String menuright;
 @TableField("menuComponent")
 private String menucomponent;
 @TableField("menuIcon")
 private String menuicon;
}
Mapper层
UserMapper.java
public interface UserMapper extends BaseMapper<User> {
 IPage pageC(IPage<User> page);
 IPage pageCC(IPage<User>page, @Param(Constants.WRAPPER)Wrapper wrapper);
 //现在先不用复制上面的代码
}
MenuMapper.java
public interface MenuMapper extends BaseMapper<Menu> {
}
Mapper对应的xml

UserMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yunhe.mapper.UserMapper">
 <!-- 通用查询映射结果 -->
 <resultMap id="BaseResultMap" type="com.yunhe.entity.User">
 <id column="id" property="id" />
 <result column="no" property="no" />
 <result column="name" property="name" />
 <result column="password" property="password" />
 <result column="age" property="age" />
 <result column="sex" property="sex" />
 <result column="phone" property="phone" />
 <result column="role_id" property="roleId" />
 <result column="isValid" property="isvalid" />
 </resultMap>
 <!-- 通用查询结果列 -->
 <sql id="Base_Column_List">
 id, no, name, password, age, sex, phone, role_id, isValid
 </sql>
 <select id="pageC" resultType="com.yunhe.entity.User">
 select * from user
 </select>
 <select id="pageCC" resultType="com.yunhe.entity.User">
 select * from user ${ew.customSqlSegment}
 </select>
</mapper>
MenuMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yunhe.mapper.MenuMapper">
 <!-- 通用查询映射结果 -->
 <resultMap id="BaseResultMap" type="com.yunhe.entity.Menu">
 <id column="id" property="id" />
 <result column="menuCode" property="menucode" />
 <result column="menuName" property="menuname" />
 <result column="menuLevel" property="menulevel" />
 <result column="menuParentCode" property="menuparentcode" />
 <result column="menuClick" property="menuclick" />
 <result column="menuRight" property="menuright" />
 <result column="menuComponent" property="menucomponent" />
 <result column="menuIcon" property="menuicon" />
 </resultMap>
 <!-- 通用查询结果列 -->
 <sql id="Base_Column_List">
 id, menuCode, menuName, menuLevel, menuParentCode, menuClick, menuRight, menuComponent, menuIcon
 </sql>
</mapper>
Service层
*重点去深入拔源码IService.java
UserService.java
public interface UserService extends IService<User> {
 IPage pageC(IPage<User>page);
 IPage pageCC(IPage<User>page, Wrapper wrapper);
 //代码暂时不写
}
UserServiceImpl.java
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
 @Autowired
 private UserMapper userMapper;
 @Override
 public IPage pageC(IPage<User> page) {
 return userMapper.pageC(page);
 }
 @Override
 public IPage pageCC(IPage<User> page, Wrapper wrapper) {
 return userMapper.pageCC(page,wrapper);
 }
}
MenuService.java
public interface MenuService extends IService<Menu> {
}
MenuServiceImpl.java
@Service
public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements MenuService {
}
Controller层
MenuController.java

@RestController
@RequestMapping("/menu")
public class MenuController {
 @Autowired
 private MenuService menuService;
 /*
 * 根据用户身份获取菜单列表
 * SELECT * from menu where menuRight like '%2%'
 * @author yunhe
 * @date 2023/1/3 20:48
 */
 @GetMapping("/list")
 public Result list(@RequestParam String roleId){
 List list = menuService.lambdaQuery()
 .like(Menu::getMenuright,roleId)
 .list();
 return Result.success(list);
 }
 @GetMapping("/list/{roleId}")
 public List<Menu> list2(@PathVariable String roleId){
 List<Menu> menuList = menuService.lambdaQuery().like(Menu::getMenuright, roleId).list();
 return menuList;
 }
}
postman测试

UserController.java
@RestController
@RequestMapping("/user")
public class UserController {
 @Autowired
 private UserService userService;
 @Autowired
 private MenuService menuService;
 /**
 * 查找所有的用户信息
 * @return
 */
 @GetMapping("/list")
 public List<User>list(){
 List<User> list = userService.list();
 System.out.println(list.size());
 return list;
 }
 /**
 * 登录功能,①登录的时候,②一并将菜单信息查询出来;
 * @return
 */
 @PostMapping("/login")
 public Result login(@RequestBody User user){
 List<User> list = userService.lambdaQuery().eq(User::getNo, user.getNo()).eq(User::getPassword, user.getPassword()).list();
 if(list.size()>0){
 User user1 = (User)list.get(0);
 List<Menu> menuList = menuService.lambdaQuery()
 .like(Menu::getMenuright,user1.getRoleId())
 .list();
 
 HashMap res = new HashMap();
 res.put("user",user1);
 res.put("menu",menuList);
 return Result.success(res);
 }
 return Result.fail();
 }
}


点击左侧边栏--》用户信息管理
得到当前登录信息

前端代码
Aside.vue
<el-menu-item index="/Profile" style="font-size: 16px;">
 <i class="el-icon-a-05" style="color: white;font-size: 22px;"></i>
 <span slot="title"><b>个人中心</b></span>
 </el-menu-item>
Header.vue
<el-dropdown-menu slot="dropdown">
 <el-dropdown-item @click.native="toUser">个人中心</el-dropdown-item>
 <el-dropdown-item @click.native="logout">退出登录</el-dropdown-item>
</el-dropdown-menu>
index.js(src/router)
{
 path:'/Profile',
 name:'profile',
 meta:{
 title:'个人中心'
 },
 component:()=>import('../components/Profile')
 },
Profile.vue


<el-row style="text-align: left">
 <el-button type="danger" @click="logout" style="margin: 25px 0 0 90px; font-size: 22px;">
 退出登录</el-button>
 </el-row>
logout() {
 this.$confirm("您确定要退出登录吗?", "提示", {
 confirmButtonText: "确定", //确认按钮的文字显示
 type: "warning",
 center: true, //文字居中显示
 })
 .then(() => {
 this.$message({
 type: "success",
 message: "退出登录成功!",
 });
 this.$router.push("/");
 sessionStorage.clear();
 })
 .catch(() => {
 this.$message({
 type: "info",
 message: "已取消退出登录!",
 });
 });
 }
- 点赞
- 收藏
- 关注作者
 
             
           
评论(0)