day21_用户模块

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设计 产品经理

开发岗 前后端程序员 测试

架构师

管理岗 项目经理

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值