Java项目-苍穹外卖-Day03

员工分页查询功能实现

需求分析和设计

在这里插入图片描述
在这里插入图片描述

代码开发

先设计类
将对应分页查询的传参类以及结果类进行封装
在这里插入图片描述

对应真正返回的为Result<PageResult>

在这里插入图片描述
Controller

/**
     *
     * @param employeePageQueryDTO
     * @return
     */
    @GetMapping("/page")
    @ApiOperation("员工分页查询")
    public Result<PageResult> page(@RequestBody EmployeePageQueryDTO employeePageQueryDTO){
    log.info("员工分页查询,参数为{}",employeePageQueryDTO);
    PageResult pageResult=employeeService.pageQuery(employeePageQueryDTO);
    return Result.success(pageResult);
    }

serviceimpl

@Override
    public PageResult pageQuery(EmployeePageQueryDTO employeePageQueryDTO) {
        //select * from employee limit 0,10(开始记录数,一共几条) 页码和一页记录数
        //对应关系limit (页码-1)*每页记录数,一页记录数,通过pageHelper
        //自己学一下PageHelper插件
        PageHelper.startPage(employeePageQueryDTO.getPage(),employeePageQueryDTO.getPageSize());
        Page<Employee> page =  employeeMapper.pageQuery(employeePageQueryDTO);
        long total = page.getTotal();
        List<Employee> result = page.getResult();

        return new PageResult(total,result);
    }

Mapper

 Page<Employee> pageQuery(EmployeePageQueryDTO employeePageQueryDTO);

对应的xml文件

<select id="pageQuery" resultType="com.sky.entity.Employee">-- 返回结果实际为集合中的单个元素,可以点击错误自动生成这个标签
        select * from employee
        <where>
            <if test="name != null and name !=''">
                and name LIKE concat('%',#{name},'%')
            </if>
        </where>
        order by create_time desc
    </select>

pageHelper底层

为什么我们并没有查询对应的
sql还能呈现出分页效果呢?
在这里插入图片描述
pagehelper底层也是根据ThreadLocal来实现分页查询
然后在查询的时候取出来进行动态的拼接
在这里插入图片描述
顺手还能把计算做了

代码完善

测试完后发现返回的修改时间数据以数据的形式返回
渲染后不是我们想要的结果 应为,xxxx年xx月x日 xx时 xx分 xx秒
在这里插入图片描述
完善
方式1是针对单个
方式2是统一处理
在这里插入图片描述
先只修改createtime,重新启动测试
在这里插入图片描述
createtime变了,但updatetime还是数组形式
在这里插入图片描述
第二种方式
在这里插入图片描述

    /**
     * 扩展springmvc框架的消息转换器
     * @param converters
     */
    @Override
    protected void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
        //扩展消息转换器
        //自己创建一个消息转换器对象
        MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
        //为消息转化器设置一个对象转换器,可以将java对象序列化为json数据
        mappingJackson2HttpMessageConverter.setObjectMapper(new JacksonObjectMapper());
        //将自己的消息转换器加入容器中
        converters.add(0,mappingJackson2HttpMessageConverter);
    }
}

对象转换器,需要我们自己进行设置
在这里插入图片描述

converters.add(0,mappingJackson2HttpMessageConverter);
默认添加消息转换器会放到最后一位,我们设置索引0,优先级会变为最高

在这里插入图片描述
最后的效果

启用禁用员工账号功能开发

需求分析

启用状态账号可以禁用(显示禁用的操作)
禁用状态的账号相反
当然被禁用的账号是不能进行登录的
在这里插入图片描述
在这里插入图片描述

代码开发

controller
在这里插入图片描述
service
在这里插入图片描述
mapper的sql语句
在这里插入图片描述
这个测试就没什么好测试的了
主要是为什么要把id传参和status封装成employee对象
我感觉,应该是后面的修改编辑员工的操作在mapper里面
和我们这个修改状态是一样的,接收的为employee参数
所以就省了一个单独改状态的方法

编辑员工功能开发

需求分析和设计

有回显操作
需要进行先根据id查询,然后修改操作
设计两个接口
1.根据id查询员工信息
2.更新员工信息
在这里插入图片描述
查询接口
在这里插入图片描述
编辑员工接口
在这里插入图片描述

代码开发

controller
在这里插入图片描述
service
在这里插入图片描述
mapper
在这里插入图片描述
这里在这之前猜的没错,就是用了修改状态的能够update语句,就不用再写修改员工的,mapper了
我测试完就没问题的
先swagger测试
再前后端联调

导入分类模板

分类模板类似于对应的员工操作
所以就直接导入了
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

导入时的问题

一直报错找不到Category类

<select id="list" resultType="Category">
然后我把所有xml文件中的Category改为
com.sky.entity.Category
就成功运行了
就是要写全路径不仅仅是类名
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小袁拒绝摆烂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值