员工信息的操作

准备阶段

1、全局的日期配置


@Component
public class DateConverter implements Converter<String, LocalDate> {

   @Override
   public LocalDate convert(String source) {
      try {
         return LocalDate.parse(source, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
      }catch (Exception e){
         RespBean.error("日期格式不正确,请你检查日期格式");
      }
      return null;
   }
}

2、实体类的日期字段

    @ApiModelProperty(value = "出生日期")
    //每个日期加上JSonFormat格式
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "Asia/Shanghai")
    private LocalDate birthday;

 3、数据库表存在外键如何处理

    @ApiModelProperty(value = "民族")
    @TableField(exist = false)  #数据库不包括的字段
    private Nation nation;

    @ApiModelProperty(value = "政治面貌")
    @TableField(exist = false)         #数据库不包括的字段
    private PoliticsStatus politicsStatus;

    @ApiModelProperty(value = "部门")
    @TableField(exist = false)     #数据库不包括的字段
    private Department department;

    @ApiModelProperty(value = "职称")
    @TableField(exist = false)       #数据库不包括的字段
    private Joblevel joblevel;

    @ApiModelProperty(value = "职位")
    @TableField(exist = false)     #数据库不包括的字段
    private Position position;

实践阶段

Controller层

	@ApiOperation(value = "获取所有的用户信息(分页)")
	@GetMapping("/")
	public RespPageBean getEmployee(@RequestParam(value = "offset",defaultValue = "1")Integer offset,
	                                @RequestParam(value ="pagesize",defaultValue = "10")Integer pagesize,
	                                Employee employee, LocalDate[] beginDateScpe){
		return this.employeeService.getEmployeeByPage(offset,pagesize,employee,beginDateScpe);
	}

Service层


	/**
	 * 获取所有员工(分页)
	 * @param offset
	 * @param pagesize
	 * @param employee
	 * @param beginDateScpe
	 * @return
	 */
	@Override
	public RespPageBean getEmployeeByPage(Integer offset, Integer pagesize, Employee employee, LocalDate[] beginDateScpe) {
	    //开启分页
		Page<Employee> page=new Page<>(offset,pagesize);
		IPage<Employee> employeeByPage = this.employeeMapper.getEmployeeByPage(page, employee, beginDateScpe);
         //获取用户所有分页
        RespPageBean respPageBean=new RespPageBean(employeeByPage.getTotal(),employeeByPage.getRecords());
		return respPageBean;
	}

 Mapper接口

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.clould.mapper.EmployeeMapper">

    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.example.clould.entity.Employee">
        <result column="id" property="id" />
        <result column="name" property="name" />
        <result column="gender" property="gender" />
        <result column="birthday" property="birthday" />
        <result column="idCard" property="idcard" />
        <result column="wedlock" property="wedlock" />
        <result column="nationId" property="nationid" />
        <result column="nativePlace" property="nativeplace" />
        <result column="politicId" property="politicid" />
        <result column="email" property="email" />
        <result column="phone" property="phone" />
        <result column="address" property="address" />
        <result column="departmentId" property="departmentid" />
        <result column="jobLevelId" property="joblevelid" />
        <result column="posId" property="posid" />
        <result column="engageForm" property="engageform" />
        <result column="tiptopDegree" property="tiptopdegree" />
        <result column="specialty" property="specialty" />
        <result column="school" property="school" />
        <result column="beginDate" property="begindate" />
        <result column="workState" property="workstate" />
        <result column="workID" property="workid" />
        <result column="contractTerm" property="contractterm" />
        <result column="conversionTime" property="conversiontime" />
        <result column="notWorkDate" property="notworkdate" />
        <result column="beginContract" property="begincontract" />
        <result column="endContract" property="endcontract" />
        <result column="workAge" property="workage" />
        <result column="salaryId" property="salaryid" />
    </resultMap>

    <resultMap id="EmployeeInfo" type="com.example.clould.entity.Employee" extends="BaseResultMap">
        <association property="nationid" javaType="com.example.clould.entity.Nation">
            <id column="nid" property="id"></id>
            <result column="nname" property="name"></result>
        </association>

        <association property="politicsStatus" javaType="com.example.clould.entity.PoliticsStatus">
            <id column="pid" property="id"></id>
            <result column="pname" property="name"></result>
        </association>

        <association property="department" javaType="com.example.clould.entity.Department">
            <id column="did" property="id"></id>
            <result column="dname" property="name"></result>
        </association>

        <association property="joblevel" javaType="com.example.clould.entity.Joblevel">
            <id column="jid" property="id"></id>
            <result column="jname" property="name"></result>
        </association>

        <association property="position" javaType="com.example.clould.entity.Position">
            <id column="posid" property="id"></id>
            <result column="posname" property="name"></result>
        </association>

    </resultMap>

<!--    获取所有员工(分页)-->
    <select id="getEmployeeByPage" resultMap="EmployeeInfo">
      SELECT
            e.*, n.id AS nid,
            n. NAME AS nname,
            p.id AS pid,
            p. NAME AS pname,
            d.id AS did,
            d. NAME dname,
            j.id jid,
            j. NAME jname,
            pos.id posId,
            pos. NAME posname
        FROM
            t_employee e,
            t_nation n,
            t_politics_status p,
            t_department d,
            t_joblevel j,
            t_position pos
        WHERE
            e.nationId = n.id
        AND e.politicId = p.id
        AND e.departmentId = d.id
        AND e.jobLevelId = j.id
        AND e.posId = pos.id
        #查询条件
        <if test="null!=employee.name and ''!=employee ">
            AND e. NAME LIKE CONCAT('%', #{employee.name}, '%')
        </if>
        <if test="null!=employee.politicid">
            AND e.politicId = #{employee.politicid}
        </if>
        <if test="null!=employee.nationid">
            AND e.nationId = #{employee.nationid}
        </if>

        <if test="null!=employee.joblevelid">
            AND e.jobLevelId = #{employee.joblevelid}
        </if>

        <if test="null!=employee.posid">
            AND e.posId = #{employee.posid}
        </if>
        <if test="null!=employee.engageform and ''!=employee.engageform ">
            AND e.engageform = #{employee.engageform}
        </if>

        <if test="null!=employee.beginDateScpe and 2==beginDateScpe.length">
            AND e.beginDate BETWEEN #{beginDateScpe[0]}
            AND #{beginDateScpe[1]}
        </if>
        ORDER BY
            e.id
    </select>

</mapper>

测试阶段 

 接口测试

 

 

今天的分享就到这里了哈,喜欢的关注一下哈,每天更新干货

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值