ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java 关键词跟范围查询

2022-06-02 17:32:35  阅读:171  来源: 互联网

标签:Java 关键词 List ruoyi private 查询 enterprise import com


1、页面功能实现,只看 实体类、基类、跟mapper.xml 就可以了

 

 

 

二、实体类 (该实体用继承关系  QwBaseEntity类)

package com.ruoyi.enterprise.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;
import java.util.Date;

/**
 * 信息对象 qw_enterprise
 *
 * @author ruoyi
 * @date 2022-05-23
 */
@Data
public class QwEnterprise extends QwBaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 企业信息ID */
    private Integer id;

    /** 地区ID */
    private String regionId;

    /** 企业名称 */
    private String enterpriseName;

    /** 登记状态 (0在业/存续 1清算 2迁入 3迁出 4停业 5撤销 6吊销 7注销 8歇业 9责令关闭) */
    private String status;

    /** 法定代表人 */
    private String legalName;

    /** 注册资金 */
    private Double money;

    /** 注册资本 */
    private String registeredCapital;

    /** 成立时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date establishTime;

    /** 参保人数 */
    private Integer insuredPeople;

    /** 经营范围 */
    private String articleContent;
}

 

基类:组装成前端所需要的格式(部分使用类部类)

package com.ruoyi.enterprise.domain;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDate;
import java.util.List;

/**
 * 基础信息Entity基类
 *
 * @author ruoyi
 */
@Data
public class QwBaseEntity implements Serializable
{
    private static final long serialVersionUID = 1L;

    /** 关键词 */
    private String keyword;

    /** 登记状态 */
    private List<Long> statusIds;

    /** 地区ID数组 */
    private List<Long> regionIds;

    /** (参保人数)最小值\最大值 */
    private List<InsuredPeople> personsList;

    /** (成立时间)开始日期 至 结束日期 */
    private List<EstablishTime> timeList;

    /** (注册资本)最小值\最大值 */
    private List<RegisteredCapital> moneyList;

    @Data
    public static class InsuredPeople{
        private Integer min;
        private Integer max;
    }
    @Data
    public static class EstablishTime{
        private LocalDate beginTime;
        private LocalDate endTime;
    }
    @Data
    public static class RegisteredCapital{
        private Integer min;
        private Integer max;
    }
}

 

三、Mapper接口

package com.ruoyi.enterprise.mapper;
import com.ruoyi.enterprise.domain.QwEnterprise;
import org.apache.ibatis.annotations.Param;
import java.util.List;

/**
 * Mapper接口
 *
 * @author ruoyi
 * @date 2022-05-23
 */
public interface QwEnterpriseMapper
{
    /**
     * 查询企业信息列表
     * @param qwEnterprise 企业信息
     * @return 企业信息集合
     */
    public List<QwEnterprise> selectQwEnterpriseList(@Param("param")QwEnterprise qwEnterprise, @Param("regionIds") Long regionIds);

}

 

四:Mapper.xml   SQL语句(关键),通过 foreach 实现范围检索

<?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">
<!-- 将下列SQL语句绑定 dao层对应接口 -->
<mapper namespace="com.ruoyi.enterprise.mapper.QwEnterpriseMapper">

    <resultMap type="QwEnterprise" id="QwEnterpriseResult">
        <result property="id"    column="id"    />
        <result property="region_id"    column="regionId"    />
        <result property="enterpriseName"    column="enterprise_name"    />
        <result property="status"    column="status"    />
        <result property="legalName"    column="legal_name"    />
        <result property="money"    column="money"    />
        <result property="registeredCapital"    column="registered_capital"    />
        <result property="establishTime"    column="establish_time"    />
        <result property="approvalTime"    column="approval_time"    />
        <result property="province"    column="province"    />
        <result property="city"    column="city"    />
        <result property="area"    column="area"    />
        <result property="phonenumber"    column="phonenumber"    />
        <result property="morePhonenumber"    column="more_phonenumber"    />
        <result property="email"    column="email"    />
        <result property="moreEmail"    column="more_email"    />
        <result property="creditCode"    column="credit_code"    />
        <result property="taxpayerNumber"    column="taxpayer_number"    />
        <result property="registrationNumber"    column="registration_number"    />
        <result property="organizationCode"    column="organization_code"    />
        <result property="insuredPeople"    column="insured_people"    />
        <result property="enterpriseType"    column="enterprise_type"    />
        <result property="industry"    column="industry"    />
        <result property="usedBeforeName"    column="used_before_name"    />
        <result property="englishName"    column="english_name"    />
        <result property="websiteUrl"    column="website_url"    />
        <result property="businessAddress"    column="business_address"    />
        <result property="reportAddress"    column="report_address"    />
        <result property="articleContent"    column="article_content"    />
    </resultMap>

    <sql id="selectQwEnterpriseVo">
        select id, region_id, enterprise_name, status, legal_name, money, registered_capital, establish_time, approval_time,
               province, city, area, phonenumber, more_phonenumber,email, more_email, credit_code, taxpayer_number,
               registration_number, organization_code, insured_people, enterprise_type,industry, used_before_name,
               english_name, website_url, business_address, report_address, article_content
        from qw_enterprise
    </sql>

    <select id="selectQwEnterpriseList" parameterType="QwEnterprise" resultMap="QwEnterpriseResult">
        <include refid="selectQwEnterpriseVo"/>
        <where>
            <if test="param.keyword != null and param.keyword != ''">  <!-- 关键词搜索 -->
                AND (enterprise_name like CONCAT('%',#{param.keyword},'%')
                    or legal_name = #{param.keyword}
                    or phonenumber = #{param.keyword}
                    or credit_code = #{param.keyword}
                    or taxpayer_number = #{param.keyword}
                    or registration_number = #{param.keyword}
                    or business_address like CONCAT('%',#{param.keyword},'%'))
            </if>
            <if test="param.statusIds != null">
                AND status in
                <foreach collection="param.statusIds" index="index" item="id" open="(" separator="," close=")"> <!-- 登记状态 -->
                    #{id}
                </foreach>
            </if>
            <if test="regionIds != null">  <!-- 地区ID集合 -->
                AND (region_id like CONCAT('%',#{regionIds},'%'))
            </if>
            <if test="param.personsList != null ">  <!-- 参保人数【范围】 -->
                AND
                <foreach collection="param.personsList" item="num" open="(" separator="or" close=")">
                    (insured_people &gt;= #{num.min} and insured_people &lt;= #{num.max})
                </foreach>
            </if>
            <if test="param.timeList != null ">  <!-- 成立时间【范围】 -->
                AND
                <foreach collection="param.timeList" item="time" open="(" separator="or" close=")">
                    (establish_time &gt;= #{time.beginTime} and establish_time &lt;= #{time.endTime})
                </foreach>
            </if>
            <if test="param.moneyList != null ">  <!-- 注册资本【范围】 -->
                AND
                <foreach collection="param.moneyList" item="num" open="(" separator="or" close=")">
                    (money &gt;= #{num.min} and money &lt;= #{num.max})
                </foreach>
            </if>
        </where>
    </select>
</mapper>                    

 

五:Service接口

package com.ruoyi.enterprise.service;
import com.ruoyi.enterprise.domain.QwEnterprise;
import java.util.List;

/**
 * Service接口
 *
 * @author ruoyi
 * @date 2022-05-23
 */
public interface IQwEnterpriseService {

    /**
     * 查询企业信息列表
     * @param qwEnterprise 企业信息
     * @return 企业信息集合
     */
    public List<QwEnterprise> selectQwEnterpriseList(QwEnterprise qwEnterprise);

}

 

六:Service业务层处理

package com.ruoyi.enterprise.service.impl;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.enterprise.domain.QwEnterprise;
import com.ruoyi.enterprise.mapper.QwEnterpriseMapper;
import com.ruoyi.enterprise.service.ITableAreaService;
import com.ruoyi.enterprise.service.IQwEnterpriseService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;

/**
 * Service业务层处理
 *
 * @author ruoyi
 * @date 2022-05-23
 */
@Service
public class QwEnterpriseServiceImpl implements IQwEnterpriseService {
    private static final Logger log = LoggerFactory.getLogger(QwEnterpriseServiceImpl.class);

    @Autowired
    private QwEnterpriseMapper qwEnterpriseMapper;

    @Autowired
    private ITableAreaService tableAreaService;

    /**
     * 查询企业信息列表
     *
     * @param qwEnterprise 企业信息
     * @return 企业信息
     */
    @Override
    public List<QwEnterprise> selectQwEnterpriseList(QwEnterprise qwEnterprise) {
        List<QwEnterprise> qwEnterprises = new ArrayList<>();
      //判断选择的地区ID数组不为空,就根据前端返回的参数查询 if (qwEnterprise.getRegionIds() != null) { qwEnterprise.getRegionIds().forEach(regionId -> { qwEnterprises.addAll(qwEnterpriseMapper.selectQwEnterpriseList(qwEnterprise, regionId)); }); } else { qwEnterprises.addAll(qwEnterpriseMapper.selectQwEnterpriseList(qwEnterprise, null)); } return qwEnterprises; } }

 

七:控制层处理 (返回的格式为 JSON格式,通过注解:@RequestBody)

package com.ruoyi.enterprise.controller;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.enterprise.domain.QwEnterprise;
import com.ruoyi.enterprise.service.IQwEnterpriseService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * 企业信息Controller
 *
 * @author ruoyi
 * @date 2022-05-23
 */
@Api(tags = "信息==》接口")
@RestController
@RequestMapping("/enterprise")
@Slf4j
public class QwEnterpriseController extends BaseController
{
    @Autowired
    private IQwEnterpriseService qwEnterpriseService;

    /**
     * 查询企业信息列表
     */
    @ApiOperation("信息查询接口")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody QwEnterprise qwEnterprise)
    {
        startPage();
        List<QwEnterprise> list = qwEnterpriseService.selectQwEnterpriseList(qwEnterprise);
        return getDataTable(list);
    }
}

 

注:TableDataInfo  表格分页数据对象  ;getDataTable   web层通用数据处理;参考【若依】封装类

若依官网地址:https://gitee.com/y_project/RuoYi-Vue

 

标签:Java,关键词,List,ruoyi,private,查询,enterprise,import,com
来源: https://www.cnblogs.com/springclout/p/16338492.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有