网站新闻发布后前台不显示,天津制作网页,wordpress企业建站视频教程,网页设计就业工资员工分页查询和账号启用禁用功能 1. 员工分页查询1.1 需求分析和设计1.1.1 产品原型1.1.2 接口设计 1.2 代码开发1.2.1 设计DTO类1.2.2 封装PageResult1.2.3 Controller层1.2.4 Service层接口1.2.5 Service层实现类1.2.6 Mapper层 1.3 功能测试1.4 代码完善 2. 启用禁用员工账号… 员工分页查询和账号启用禁用功能 1. 员工分页查询1.1 需求分析和设计1.1.1 产品原型1.1.2 接口设计 1.2 代码开发1.2.1 设计DTO类1.2.2 封装PageResult1.2.3 Controller层1.2.4 Service层接口1.2.5 Service层实现类1.2.6 Mapper层 1.3 功能测试1.4 代码完善 2. 启用禁用员工账号2.1 需求分析与设计2.1.1 产品原型2.1.2 接口设计 2.2 代码开发2.2.1 Controller层2.2.2 Service层接口2.2.3 Service层实现类2.2.4 Mapper层 2.3 功能测试 1. 员工分页查询
1.1 需求分析和设计
1.1.1 产品原型
查询员工原型 业务规则
根据页码展示员工信息每页展示10条数据分页查询时可以根据需要输入员工姓名进行查询
1.1.2 接口设计 注意事项
请求参数类型为Query不是json格式提交在路径后直接拼接。/admin/employee/page?namezhangsan返回数据中records数组中使用Employee实体类对属性进行封装。
1.2 代码开发
1.2.1 设计DTO类
根据请求参数进行封装在sky-pojo模块中
package com.sky.dto;import lombok.Data;import java.io.Serializable;Data
public class EmployeePageQueryDTO implements Serializable {//员工姓名private String name;//页码private int page;//每页显示记录数private int pageSize;}
1.2.2 封装PageResult
后面所有的分页查询统一都封装为PageResult对象。
在sky-common模块
package com.sky.result;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;import java.io.Serializable;
import java.util.List;/*** 封装分页查询结果*/
Data
AllArgsConstructor
NoArgsConstructor
public class PageResult implements Serializable {private long total; //总记录数private List records; //当前页数据集合}
员工信息分页查询后端返回的对象类型为: Result
package com.sky.result;import lombok.Data;import java.io.Serializable;/*** 后端统一返回结果* param T*/
Data
public class ResultT implements Serializable {private Integer code; //编码1成功0和其它数字为失败private String msg; //错误信息private T data; //数据public static T ResultT success() {ResultT result new ResultT();result.code 1;return result;}public static T ResultT success(T object) {ResultT result new ResultT();result.data object;result.code 1;return result;}public static T ResultT error(String msg) {Result result new Result();result.msg msg;result.code 0;return result;}}1.2.3 Controller层
在sky-server模块中com.sky.controller.admin.EmployeeController中添加分页查询方法。 /*** 员工分页查询* param employeePageQueryDTO* return*/GetMapping(/page)ApiOperation(员工分页查询)public ResultPageResult page(EmployeePageQueryDTO employeePageQueryDTO){log.info(员工分页查询参数为{}, employeePageQueryDTO);PageResult pageResult employeeService.pageQuery(employeePageQueryDTO);//后续定义return Result.success(pageResult);}1.2.4 Service层接口
在EmployeeService接口中声明pageQuery方法 /*** 分页查询* param employeePageQueryDTO* return*/PageResult pageQuery(EmployeePageQueryDTO employeePageQueryDTO);1.2.5 Service层实现类
在EmployeeServiceImpl中实现pageQuery方法 /*** 分页查询** param employeePageQueryDTO* return*/public PageResult pageQuery(EmployeePageQueryDTO employeePageQueryDTO) {// select * from employee limit 0,10//开始分页查询PageHelper.startPage(employeePageQueryDTO.getPage(), employeePageQueryDTO.getPageSize());PageEmployee page employeeMapper.pageQuery(employeePageQueryDTO);//后续定义long total page.getTotal();ListEmployee records page.getResult();return new PageResult(total, records);}注意此处使用 mybatis 的分页插件 PageHelper 来简化分页代码的开发。底层基于 mybatis 的拦截器实现。
故在pom.xml文中添加依赖
dependencygroupIdcom.github.pagehelper/groupIdartifactIdpagehelper-spring-boot-starter/artifactIdversion${pagehelper}/version
/dependency1.2.6 Mapper层
在 EmployeeMapper 中声明 pageQuery 方法 /*** 分页查询* param employeePageQueryDTO* return*/PageEmployee pageQuery(EmployeePageQueryDTO employeePageQueryDTO);在 src/main/resources/mapper/EmployeeMapper.xml 中编写SQL
select idpageQuery resultTypecom.sky.entity.Employeeselect * from employeewhereif testname ! null and name ! and name like concat(%,#{name},%)/if/whereorder by create_time desc/select1.3 功能测试
重启服务访问http://localhost:8080/doc.html进入员工分页查询。
点击员工管理 输入员工姓名为zhangsan 发现最后操作时间格式不清晰再解决一下。 1.4 代码完善
问题描述操作时间字段显示有问题。 解决方式
1). 方式一
在属性上加上注解对日期进行格式化 但这种方式需要在每个时间属性上都要加上该注解使用较麻烦不能全局处理。
2). 方式二推荐 )
在WebMvcConfiguration中扩展SpringMVC的消息转换器统一对日期类型进行格式处理 /*** 扩展Spring MVC框架的消息转化器* param converters*/protected void extendMessageConverters(ListHttpMessageConverter? converters) {log.info(扩展消息转换器...);//创建一个消息转换器对象MappingJackson2HttpMessageConverter converter new MappingJackson2HttpMessageConverter();//需要为消息转换器设置一个对象转换器对象转换器可以将Java对象序列化为json数据converter.setObjectMapper(new JacksonObjectMapper());//将自己的消息转化器加入容器中converters.add(0,converter);}添加后再次测试 时间格式定义sky-common模块中
package com.sky.json;public class JacksonObjectMapper extends ObjectMapper {//.......public static final String DEFAULT_DATE_TIME_FORMAT yyyy-MM-dd HH:mm;//.......}
}2. 启用禁用员工账号
2.1 需求分析与设计
2.1.1 产品原型
在员工管理列表页面可以对某个员工账号进行启用或者禁用操作。账号禁用的员工不能登录系统启用后的员工可以正常登录。如果某个员工账号状态为正常则按钮显示为 “禁用”如果员工账号状态为已禁用则按钮显示为启用。
启禁用员工原型 业务规则
可以对状态为“启用” 的员工账号进行“禁用”操作。可以对状态为“禁用”的员工账号进行“启用”操作。状态为“禁用”的员工账号不能登录系统。
2.1.2 接口设计 1). 路径参数携带状态值。
2). 同时把id传递过去明确对哪个用户进行操作。
3). 返回数据code状态是必须其它是非必须。
2.2 代码开发
2.2.1 Controller层
在sky-server模块中根据接口设计中的请求参数形式对应的在 EmployeeController 中创建启用禁用员工账号的方法 /*** 启用禁用员工账号* param status* param id* return*/PostMapping(/status/{status})ApiOperation(启用禁用员工账号)public Result startOrStop(PathVariable Integer status,Long id){log.info(启用禁用员工账号{},{},status,id);employeeService.startOrStop(status,id);//后绪步骤定义return Result.success();}2.2.2 Service层接口
在 EmployeeService 接口中声明启用禁用员工账号的业务方法 /*** 启用禁用员工账号* param status* param id*/void startOrStop(Integer status, Long id);2.2.3 Service层实现类
在 EmployeeServiceImpl 中实现启用禁用员工账号的业务方法 /*** 启用禁用员工账号** param status* param id*/public void startOrStop(Integer status, Long id) {Employee employee Employee.builder().status(status).id(id).build();employeeMapper.update(employee);}2.2.4 Mapper层
在 EmployeeMapper 接口中声明 update 方法 /*** 根据主键动态修改属性* param employee*/void update(Employee employee);在 EmployeeMapper.xml 中编写SQL
update idupdate parameterTypeEmployeeupdate employeesetif testname ! nullname #{name},/ifif testusername ! nullusername #{username},/ifif testpassword ! nullpassword #{password},/ifif testphone ! nullphone #{phone},/ifif testsex ! nullsex #{sex},/ifif testidNumber ! nullid_Number #{idNumber},/ifif testupdateTime ! nullupdate_Time #{updateTime},/ifif testupdateUser ! nullupdate_User #{updateUser},/ifif teststatus ! nullstatus #{status},/if/setwhere id #{id}/update2.3 功能测试
测试前 点击启用: 后记 美好的一天到此结束下次继续努力欲知后续请看下回分解写作不易感谢大家的支持