fast-vue项目用户信息设计

fast-vue管理系统的人员信息页面搭建

后端实现数据操作

这里将介绍基于springboot框架简单的页面,并进行数据操作。

1. 数据库的设计

首先我们先搭建一张人员信息表,我的取名为sys-userinfo,其中设计好自己所需的字段
在这里插入图片描述

2. 后端部分设计

首先我们需要先在entity中设计根据字段设计出实体类

在这里插入图片描述
类中的字段与数据库中的字段相对应,其中@Date注解在类上, 为类提供读写属性, 此外还提供了 equals()、hashCode()、toString() 方法,简化了代码。下面代码是我自己设计的

package com.wedu.modules.sys.entity;


import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.wedu.common.validator.group.AddGroup;
import com.wedu.common.validator.group.UpdateGroup;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import java.util.Date;

@Data
@TableName("sys_user_info")
public class SysUserInfoEntity {

    @TableId
//    ID
    private Integer id;
    @NotBlank(message="用户名不能为空", groups = {AddGroup.class, UpdateGroup.class})
//    用户名字
    private String name;
//    用户年龄
    private Integer age;
//    账户余额
    private Double accountBalance;
//    创建时间
    private Date createTime;
//    完成状态
    private Integer completionStatus;
}

设计好字段后就可以在server层写方法,首先定义一个server接口,里面定义展示增删查改的方法,其中的展示方法我使用了分页展示,查询方法则是根据用户姓名进行查询,删除则是根据用户id进行删除。



package com.wedu.modules.sys.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.wedu.common.utils.PageUtils;
import com.wedu.modules.sys.entity.SysUserEntity;
import com.wedu.modules.sys.entity.vo.UserInfoVO;

import java.util.List;
import java.util.Map;


/**
 * 系统用户
 *
 * @author wedu
 */
public interface SysUserService extends IService<SysUserEntity> {

	PageUtils queryPage(Map<String, Object> params);

	/**
	 * 查询用户的所有权限
	 * @param userId  用户ID
	 */
	List<String> queryAllPerms(Long userId);

	/**
	 * 查询用户的所有菜单ID
	 */
	List<Long> queryAllMenuId(Long userId);

	/**
	 * 根据用户名,查询系统用户
	 */
	SysUserEntity queryByUserName(String username);

	/**
	 * 保存用户
	 */
	void saveUser(SysUserEntity user);

	/**
	 * 修改用户
	 */
	void update(SysUserEntity user);

	/**
	 * 删除用户
	 */
	void deleteBatch(Long[] userIds);

	/**
	 * 修改密码
	 * @param userId       用户ID
	 * @param password     原密码
	 * @param newPassword  新密码
	 */
	boolean updatePassword(Long userId, String password, String newPassword);

	/**
	 * 获取当前登录人员信息
	 * @return 用户信息对象
	 */
	UserInfoVO getLoginUserInfo();
}


接着在impl中去实现这个方法

package com.wedu.modules.sys.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wedu.common.utils.PageUtils;
import com.wedu.common.utils.Query;
import com.wedu.modules.sys.dao.SysUserInfoDao;
import com.wedu.modules.sys.entity.SysUserInfoEntity;
import com.wedu.modules.sys.service.SysUserInfoService;
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.Arrays;
import java.util.Map;

@Service("sysUserInfoService")
public class SysUserInfoServiceImpl extends ServiceImpl<SysUserInfoDao, SysUserInfoEntity> implements SysUserInfoService {
//    分页查询,查询所以数据
    @Override
    public PageUtils queryPage(Map<String, Object> params) {
        String name = (String) params.get("name");

        IPage<SysUserInfoEntity> page = this.page(
                new Query<SysUserInfoEntity>().getPage(params),
                new QueryWrapper<SysUserInfoEntity>()
                        .like(StringUtils.isNotBlank(name),"name", name)
        );
        return new PageUtils(page);
    }


//    根据名字查询
    @Override
    public SysUserInfoEntity queryInfoByUserName(String name) {
        return baseMapper.queryInfoByUserName(name);
    }

// 保存数据(新增)
    @Override
    public void saveUserInfo(SysUserInfoEntity sysUserInfoEntity) {
        this.saveUserInfo(sysUserInfoEntity);
    }
//删除数据
    @Override
    public void deleteUserInfo(Integer[] id) {
        this.removeByIds(Arrays.asList(id));
    }
//更新数据
    @Override
    @Transactional
    public void updateUserInfo(SysUserInfoEntity user) {
        this.updateById(user);
    }
}

最后再在controller进行操作,Controller层是整个Web应用程序的核心,它承担了接收和处理用户请求,调用Service层进行业务处理,然后返回请求结果给前端页面的任务。

package com.wedu.modules.sys.controller;

import com.wedu.common.annotation.SysLog;
import com.wedu.common.utils.PageUtils;
import com.wedu.common.utils.R;
import com.wedu.common.validator.ValidatorUtils;
import com.wedu.common.validator.group.AddGroup;
import com.wedu.common.validator.group.UpdateGroup;
import com.wedu.modules.sys.entity.SysUserEntity;
import com.wedu.modules.sys.entity.SysUserInfoEntity;
import com.wedu.modules.sys.service.SysUserInfoService;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;


import java.util.Date;
import java.util.Map;

@RestController
@RequestMapping("/sys/userinfo")
public class SysUserInfoController {
        @Autowired
        private SysUserInfoService sysUserInfoService;

        @GetMapping("/list")
        @RequiresPermissions("sys:user:list")
        //查询并返回一个列表数据
        public R list(@RequestParam Map<String, Object> params){
                //将查询结果封装成PageUtils对象
                PageUtils page = sysUserInfoService.queryPage(params);
                //返回包含键值对为page的R对象
                return R.ok().put("page", page);
        }

        @GetMapping("/info/{id}")
        @RequiresPermissions("sys:userinfo:info")
        public R info(@PathVariable("id") Integer id){
                SysUserInfoEntity user = sysUserInfoService.getById(id);
                return R.ok().put("user", user);
        }

        @SysLog("存储数据")
        @PostMapping("/save")
        @RequiresPermissions("sys:userinfo:save")

        public R save(@RequestBody SysUserInfoEntity sysUserInfoEntity){
                ValidatorUtils.validateEntity(sysUserInfoEntity, AddGroup.class);
                sysUserInfoEntity.setCreateTime(new Date());
                sysUserInfoService.save(sysUserInfoEntity);
                return R.ok();
        }

        @SysLog("删除用户")
        @RequiresPermissions("sys:userinfo:delete")
        @PostMapping("/delete")
        public R delete(@RequestBody Integer[] ids){
                sysUserInfoService.deleteUserInfo(ids);
                return R.ok();
        }

        @SysLog("更新用户")
        @RequiresPermissions("sys:userinfo:update")
        @PostMapping("/update")
        public R update(@RequestBody SysUserInfoEntity user){
                ValidatorUtils.validateEntity(user, AddGroup.class);
                user.setCreateTime(new Date());
                sysUserInfoService.updateUserInfo(user);
                return R.ok();
        }

}

        }

最后在与前端进行数据交互后即可进行操作,后续操作在后面将介绍。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值