EL-ADMIN增加返回字段

EL-ADMIN增加返回字段,第1张

前言

本专栏前面的几篇已经实现了eladmin的基本 *** 作,本篇开发简历维护模块,对简历表里面的内容进行 *** 作。其中,因为存储的字段是工作开始时间和出生日期,而返回的数据需要展示工作年限和年龄,所以涉及到了增加两个返回参数。

数据表

保存了简历最基本的信息,而详细信息(比如工作经历、项目经验等)直接存储在了完整内容字段里面,同时有简历附件支持直接查看。

代码自动生成工具

不重复写了,可以参考前面的一篇:https://blog.csdn.net/m0_58095675/article/details/124656816

其中,生成代码的位置:系统工具–代码生成。

增加查询返回参数

默认情况下,分页查询的服务层代码:

    @Override
    public Map queryAll(ResumeQueryCriteria criteria, Pageable pageable){
    	criteria.setIsDelete(0);
        Page page = resumeRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
        return PageUtil.toPage(page.map(resumeMapper::toDto));
    }

很短的几行代码,逻辑也比较清晰。

1. 查询出来Resume分页列表数据
2. 将Resume实体类转化为Dto
3. 将dto分页数据返回

如果要增加返回参数,可以在第二步后面增加一步:将Dto数据列表逐条取出来,然后添加上新的内容(用mybatis就方便多了,直接改sql语言,but我用的是jpa,各有优略吧)。

首先修改对应的dto,增加年龄和工作年限字段,用于赋值后返回。

package me.zhengjie.xingchenlie.business.service.dto;

import java.io.Serializable;
import java.sql.Timestamp;

import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.serializer.ToStringSerializer;

import lombok.Data;

/**
* @website https://el-admin.vip
* @description /
* @author lootaa
* @date 2022-05-10
**/
@Data
public class ResumeDto implements Serializable {

    /** 主键 */
    /** 防止精度丢失 */
    @JSONField(serializeUsing = ToStringSerializer.class)
    private Long zid;

    /** 创建时间 */
    private Timestamp createTime;

    /** 更新时间 */
    private Timestamp updateTime;

    /** 删除标志 */
    private Integer isDelete;

    /** 简历附件 */
    private String fileName;

    /** 简历来源 */
    private String source;

    /** 姓名 */
    private String name;

    /** 电话 */
    private String phoneNumber;

    /** 邮箱 */
    private String email;

    /** 性别 */
    private String gender;

    /** 所在地 */
    private String address;

    /** 出生日期 */
    private String brithDay;
    
    /** 年龄 */
    private Integer age;

    /** 开始工作年份 */
    private String workStartYear;
    
    /** 工作年份 */
    private Integer workYear;

    /** 毕业院校 */
    private String school;

    /** 学历 */
    private String degree;

    /** 专业 */
    private String major;

    /** 当前公司 */
    private String currentCompany;

    /** 当前职位 */
    private String currentPosition;

    /** 当前薪资 */
    private String currentSalary;

    /** 期望薪资 */
    private String desiredSalary;

    /** 邮件Id */
    private String fileId;

    /** 简历语言 */
    private String language;

    /** 解析的完整内容 */
    private String resumeRawtext;
}

然后修改服务层代码,计算两个数值并放到dto中(因为解析的完整内容特别长,同时前端列表也用不到,所以一并赋值为空了):

    @Override
    public Map queryAll(ResumeQueryCriteria criteria, Pageable pageable){
        Page page = resumeRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
        Page dto = page.map(resumeMapper::toDto);
        List resultDtos = dto.getContent();
        for(ResumeDto resume : resultDtos) {
        	if(StringUtils.isNotBlank(resume.getBrithDay()) && resume.getBrithDay().length() >= 4) {
        		int age =  Integer.parseInt(Dates.now().substring(0,4))-Integer.parseInt(resume.getBrithDay().substring(0,4));
        		resume.setAge(age);
        	}
        	if(StringUtils.isNotBlank(resume.getWorkStartYear()) && resume.getWorkStartYear().length() >= 4) {
        		int workYear = Integer.parseInt(Dates.now().substring(0,4))-Integer.parseInt(resume.getWorkStartYear().substring(0,4));
        		resume.setWorkYear(workYear);
        	}
        	resume.setResumeRawtext("");
        }
        return PageUtil.toPage(dto);
    }
前端列表字段

前端将多返回的两个字段展示,直接修改el-table-column的prop和label即可。
列表最终展示效果(字段过多,有横线滚动条,后面的截图内容看不到):

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/905851.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-15
下一篇 2022-05-15

发表评论

登录后才能评论

评论列表(0条)

保存