day21_用户模块
1查询功能

sql分析
-- 查询语句 1检查是否要关联查询数据 2增加控制分页查询 3组织查询条件
select au1.*,au2.username as create_username,zd.name as isvalid_name from admin_user au1 inner join admin_user au2 on au1.create_uid = au2.uid
inner join zidian zd on au1.isvalid = zd.id
where zd.type = 1
and au1.username like CONCAT('%','i','%')
and au1.isvalid = 0
limit 0,3
-- 如果保留admin作为后门用户 用户操作时不应该显示 所以需要连表
-- 统计总记录数
select count(1) from admin_user au1 inner join admin_user au2 on au1.create_uid = au2.uid
where au1.username like CONCAT('%','i','%')
and au1.isvalid = 0
编码
1实体类 要根据查询的数据做调整
package com.javasm.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import java.io.Serializable;
import java.util.List;
/**
* 后台用户(AdminUser)实体类
*
* @author makejava
* @since 2025-10-23 14:37:09
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class AdminUser implements Serializable {
private static final long serialVersionUID = -50727986812410696L;
private Long uid;
/**
* 用户名
*/
private String username;
/**
* 密码
*/
private String password;
/**
* 角色id -1超级管理员 1管理员2普通用户3渠道
*/
private Long roleId;
/**
* 注册时间
*/
private String regTime;
/**
* 登录时间
*/
//日期的处理
//两种类型 日期不做计算 数据库Datetime java中String
// 日期要计算 数组库 数字 java中 double/long
private String loginTime;
/**
* =1有效 =0无效
*/
private Integer isvalid;
/**
* 创建人
*/
private Long createUid;
/**
* 备注
*/
private String remark;
private String headImg;
private List<AdminMenu> userMenu;
//显示用户完整信息时 需要创建人名称 用户状态名称
private String createUsername;
private String isvalidName;
public AdminUser(String username, Integer isvalid) {
this.username = username;
this.isvalid = isvalid;
}
}
//日期的处理 //两种类型 日期不做计算 数据库Datetime java中String // 日期要计算 数组库 数字 java中 double/long
2处理超页
//算总页数
public static Integer getTotalPage(Integer totalNum,Integer pageSize){
Integer totalPage = totalNum%pageSize==0?totalNum/pageSize:totalNum/pageSize+1;
return totalPage;
}
查询之前 根据总页数 改变当前page
//查total 组成pageInfo
Integer total = adminUserService.countUser(inputUser);
Integer totalPage = PageInfo.getTotalPage(total, pageSize);
//改bug时 可能会有新的bug 影响之前的功能
//保持好心态 认真仔细测试和开发
if(totalPage!=0&&page>totalPage){
//如果超过总页数 让传值无效 变成最大页数
page = totalPage;
}
//查分段列表数据
List<AdminUser> adminUsers = adminUserService.listUserByCondition(inputUser, page, pageSize);
页面部分可以致敬menus查询页面
2添加功能
sql分析
-- 添加语句(数据从哪里来 界面 缓存 计算结果等等)
insert into admin_user (username,`password`,reg_time,isvalid,create_uid,remark,head_img) VALUES ('菜小困','abc123',NOW(),1,7,'跳舞特别劲爆','/xxxx')
编码 略
3修改功能
sql分析
update admin_user
set username = '菜大坤',`password` = '321123',reg_time = '1999-11-11 11:11:11' ,
isvalid='0',remark = '我爱小鸡',head_img = '/321'
where uid = 5557
修改的字段 比添加时多 界面会有区别
<el-form :model="updateForm.updateData" label-width="80" > <el-row> <el-col :span="12"> <el-form-item label="用户编号" prop="uid"> <el-input v-model="updateForm.updateData.uid" /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="用户名称" prop="username"> <el-input v-model="updateForm.updateData.username" /> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="12"> <el-form-item label="用户密码" prop="password"> <el-input v-model="updateForm.updateData.password" /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="用户状态" prop="isvalid"> <el-select style="width: 100%" v-model="updateForm.updateData.isvalid" placeholder="请选择" > <el-option label="离职" :value="0" /> <el-option label="在职" :value="1" /> </el-select> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="24"> <el-form-item label="注册日期" prop="regTime"> <el-date-picker style="width: 100%" v-model="updateForm.updateData.regTime" type="datetime" placeholder="选择时间" value-format="YYYY-MM-DD HH:mm:ss" /> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="24"> <el-form-item label="备注信息" prop="remark"> <el-input v-model="updateForm.updateData.remark" style="width: 100%" :rows="2" type="textarea" /> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="24"> <el-form-item label="头像地址" prop="headImg"> <el-input v-model="updateForm.updateData.headImg" /> </el-form-item> </el-col> </el-row> </el-form>
注意:
如果从页面取值 使用的是table中的对象,会传引用 指向的还是同一个响应式对象.
所以改值时,table也会变 .
需要使用新对象 要做json对象复制
//json对象的常用复制方式 转成字符串再转成json
console.log(JSON.parse(JSON.stringify(currentRow)) );
//给修改框赋值
updateForm.updateData = JSON.parse(JSON.stringify(currentRow))
4删除功能
sql分析
delete from admin_user where uid = 5557
单条删除 只需要传单条的uid即可
项目 由前端主导 后端配合前端做数据处理 (以产品的角度 考虑程序场景)
设计岗 产品+UI设计 产品经理
开发岗 前后端程序员 测试
架构师
管理岗 项目经理
1万+

被折叠的 条评论
为什么被折叠?



