国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java 多輸入框查詢需求實(shí)現(xiàn)

這篇具有很好參考價(jià)值的文章主要介紹了Java 多輸入框查詢需求實(shí)現(xiàn)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Java 多輸入框查詢需求實(shí)現(xiàn),java,開發(fā)語言

??wei_shuo的個(gè)人主頁

??wei_shuo的學(xué)習(xí)社區(qū)

??Hello World !


多輸入框查詢

需求分析

Java 多輸入框查詢需求實(shí)現(xiàn),java,開發(fā)語言

任意一個(gè)輸入框,輸入內(nèi)容點(diǎn)擊搜索都可以精準(zhǔn)搜索到對(duì)應(yīng)的內(nèi)容

代碼實(shí)現(xiàn)

Controller接口編寫

 @PostMapping("merchant/manage")
 public Result<PageResult<DisputeMerchantManageResponse>>
 merchantDisputeManage(@RequestBody DisputeMerchantManageRequest request) {
     return Result.succ(merchantDisputeFacade.merchantDisputeManage(request));
 }
  • Result<PageResult<DisputeMerchantManageResponse>>:返回給前端的字段:VO
  • @RequestBody DisputeMerchantManageRequest request:接收前端傳遞的JSON數(shù)據(jù):BO
  • merchantDisputeFacade.merchantDisputeManage(request):調(diào)用Service的merchantDisputeManage方法,傳遞接受的參數(shù)request

Service編寫

MerchantDisputeFacade.java

public PageResult<DisputeMerchantManageResponse> merchantDisputeManage(DisputeMerchantManageRequest request) {
       DisputeMerchantManageBO manageBO = DisputeMerchantManageBO.convert(request);
        
       List<DisputeMerchantManageResponse> list = merchantDisputeService.merchantDisputeManage(manageBO);
    
       PageResult<DisputeMerchantManageResponse> pageResult = PageResult.		        				           <DisputeMerchantManageResponse>builder().pageNo(Integer.parseInt(request.getPageNo()))
                .pageSize(Integer.parseInt(request.getPageSize()))
                .total(merchantDisputeService.merchantDisputeManageCount(manageBO)).items(list).build();
        
        return pageResult;
    }
  • DisputeMerchantManageBO manageBO = DisputeMerchantManageBO.convert(request):將DisputeMerchantManageRequest對(duì)象 request 轉(zhuǎn)換為 DisputeMerchantManageBO對(duì)象 manageBO
  • List<DisputeMerchantManageResponse> list = merchantDisputeService.merchantDisputeManage(manageBO):調(diào)用merchantDisputeService中的merchantDisputeManage方法,傳遞manageBO作為參數(shù),然后獲取一個(gè)List類型的結(jié)果列表
 PageResult<DisputeMerchantManageResponse> pageResult = PageResult.		        				           <DisputeMerchantManageResponse>builder()
     			.pageNo(Integer.parseInt(request.getPageNo()))
                .pageSize(Integer.parseInt(request.getPageSize()))
                .total(merchantDisputeService.merchantDisputeManageCount(manageBO))
     .items(list).build();
  • PageResult<DisputeMerchantManageResponse>:泛型類封裝分頁查詢結(jié)果,包含頁面信息、頁碼、每頁條目數(shù)、總記錄數(shù)以及當(dāng)前頁面的數(shù)據(jù)項(xiàng)列表
  • PageResult.<DisputeMerchantManageResponse>builder():創(chuàng)建了用于構(gòu)建PageResult<DisputeMerchantManageResponse>對(duì)象的構(gòu)造器;后續(xù)代碼可以通過該構(gòu)造器設(shè)置分頁信息、總記錄數(shù)和當(dāng)前頁面的數(shù)據(jù)項(xiàng)列表,最終得到一個(gè)完整的PageResult對(duì)象
  • .pageNo(Integer.parseInt(request.getPageNo())):設(shè)置PageResult對(duì)象的當(dāng)前頁碼
  • .pageSize(Integer.parseInt(request.getPageSize())):設(shè)置PageResult對(duì)象的每頁條目數(shù)
  • .total(merchantDisputeService.merchantDisputeManageCount(manageBO)):設(shè)置PageResult對(duì)象的總記錄數(shù)
  • .items(list).build():設(shè)置PageResult對(duì)象的數(shù)據(jù)項(xiàng)列表,并完成構(gòu)建PageResult對(duì)象
  • .items(list):獲取的數(shù)據(jù)項(xiàng)列表list設(shè)置為PageResult對(duì)象的數(shù)據(jù)項(xiàng)列表屬性
  • .build():完成PageResult對(duì)象的構(gòu)建,最終得到一個(gè)完整的PageResult對(duì)象

Service編寫

MerchantDisputeService.java

    public List<DisputeMerchantManageResponse> merchantDisputeManage(DisputeMerchantManageBO disputeMerchantManageBO) {
        Merchant merchant = AuthContextHolder.getLoginMerchant();
        disputeMerchantManageBO.setMerchantNo(merchant.getMerchantNo());
        return merchantDisputeMapper.merchantDisputeManage(disputeMerchantManageBO);
    }
  • Merchant merchant = AuthContextHolder.getLoginMerchant():通過AuthContextHolder獲取當(dāng)前登錄的商家(Merchant)對(duì)象;AuthContextHolder:用于在當(dāng)前線程的上下文中存儲(chǔ)和管理認(rèn)證信息
  • disputeMerchantManageBO.setMerchantNo(merchant.getMerchantNo()):獲取merchant中的MerchantNo(商戶號(hào)),并存儲(chǔ)在disputeMerchantManageBO中
  • merchantDisputeMapper.merchantDisputeManage(disputeMerchantManageBO):調(diào)用Mapper層merchantDisputeManage方法將disputeMerchantManageBO作為參數(shù)傳遞給Mapper

Mapper

    List<DisputeMerchantManageResponse> merchantDisputeManage(DisputeMerchantManageBO disputeMerchantManageBO);

Mapper.xml

  • 通過聯(lián)表查詢,查詢merchant_dispute和transaction_order表對(duì)應(yīng)字段,通過對(duì)disputeMerchantManageBO字段傳入的條件動(dòng)態(tài)生成查詢語句,并按照創(chuàng)建時(shí)間進(jìn)行降序排序,最后返回指定分頁范圍內(nèi)的結(jié)果
    <select id="merchantDisputeManage" resultType="com.moozumi.bean.response.dispute.DisputeMerchantManageResponse">
        select md.id disputeId,md.status disputeStatus,md.type disputeType,o.merchant_no merchantNo,o.unique_id
        uniqueId,md.content disputeContent,
        o.transaction_id transactionId,md.is_reply isReply,md.created_at disputeCreatedAt,o.is_chargeback isChargeback,
        o.billing_email billingEmail,o.create_at paymentCreatedAt,
        o.application_domain,md.order_id
        from merchant_dispute md,transaction_order o
        where md.order_id = o.unique_id
        <if test="merchantNo != null and merchantNo != ''">
            and o.merchant_no = #{merchantNo}
        </if>
        <if test="uniqueId != null and uniqueId != ''">
            and o.unique_id = #{uniqueId}
        </if>
        <if test="disputeStatus != null">
            and md.status = #{disputeStatus}
        </if>
        <if test="disputeType != null">
            and md.type = #{disputeType}
        </if>
        <if test="isReply != null">
            and md.is_reply = #{isReply}
        </if>
        <if test="isChargeback != null">
            and o.is_chargeback = #{isChargeback}
        </if>
        <if test="applicationDomain != null and applicationDomain != ''">
            and o.application_domain = #{applicationDomain}
        </if>
        <if test="orderId != null and orderId != ''">
            and md.order_id = #{orderId}
        </if>
        order by md.created_at desc
        limit #{limit} offset #{offset}
    </select>

BO:對(duì)前端傳遞參數(shù)進(jìn)行接收處理

  • 使用DisputeMerchantManageBO處理request的主要目的是為了在業(yè)務(wù)邏輯層(Service層)中更好地封裝業(yè)務(wù)邏輯和數(shù)據(jù)處理
@Data
public class DisputeMerchantManageBO {
    private String merchantNo;
    private String uniqueId;
    private Integer disputeStatus;
    private Integer disputeType;
    private Boolean isReply;
    private Boolean isChargeback;
    private Integer offset;
    private Integer limit;
    private String orderId;
    private String applicationDomain;

    public void setOffset(String pageNo, String pageSize) {
        this.offset = (Integer.parseInt(pageNo) - 1) * Integer.parseInt(pageSize);
    }

    public void setLimit(String pageSize) {
        this.limit = Integer.parseInt(pageSize);
    }

    //DisputeMerchantManageRequest 轉(zhuǎn)換成 BO
    public static DisputeMerchantManageBO convert(DisputeMerchantManageRequest disputeMerchantManageRequest) {
        DisputeMerchantManageBO disputeMerchantManageBO = new DisputeMerchantManageBO();
        disputeMerchantManageBO.setMerchantNo(AuthContextHolder.getLoginMerchant().getMerchantNo());
        disputeMerchantManageBO.setUniqueId(disputeMerchantManageRequest.getUniqueId());
        disputeMerchantManageBO.setDisputeStatus(disputeMerchantManageRequest.getDisputeStatus());
        disputeMerchantManageBO.setDisputeType(disputeMerchantManageRequest.getDisputeType());
        disputeMerchantManageBO.setIsReply(disputeMerchantManageRequest.getIsReply());
        disputeMerchantManageBO.setIsChargeback(disputeMerchantManageRequest.getIsChargeback());
        disputeMerchantManageBO.setOffset(disputeMerchantManageRequest.getPageNo(), disputeMerchantManageRequest.getPageSize());
        disputeMerchantManageBO.setLimit(disputeMerchantManageRequest.getPageSize());
        disputeMerchantManageBO.setOrderId(disputeMerchantManageRequest.getOrderId());
        disputeMerchantManageBO.setApplicationDomain(disputeMerchantManageRequest.getApplicationDomain());
        return disputeMerchantManageBO;
    }
}

request:請(qǐng)求類,前端向后端請(qǐng)求的字段

DisputeMerchantManageRequest.java

DisputeMerchantManageRequest:字段對(duì)應(yīng)搜索框需要搜索的字段

@Data
public class DisputeMerchantManageRequest extends PageQuery {
    private String merchantNo;
    private String uniqueId;
    private Integer disputeStatus;
    private Integer disputeType;
    private Boolean isReply;
    private Boolean isChargeback;
    private String orderId;
    private String applicationDomain;

}

response:響應(yīng)類,后端響應(yīng)給前端的字段

DisputeMerchantManageResponse:后端通過DisputeMerchantManageRequest字段查詢數(shù)據(jù)庫返回查詢出的數(shù)據(jù)

@Data
public class DisputeMerchantManageResponse {
    private Long disputeId;
    private Integer disputeStatus;
    private Integer disputeType;
    private String disputeContent;
    private String merchantNo;
    private String uniqueId;
    private String transactionId;
    private Boolean isReply;
    private Boolean isChargeback;
    private String billingEmail;
    private Date disputeCreatedAt;
    private Date paymentCreatedAt;
    private String orderId;
    private String applicationDomain;
}

PageResult類

@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class PageResult<T> implements Serializable {

    @ApiModelProperty("總記錄數(shù)")
    private Integer total;
    private Integer pageNo;
    private Integer pageSize;
    private Integer totalPage;

    @ApiModelProperty("列表數(shù)據(jù)")
    @Builder.Default
    private List<T> items = Collections.emptyList();


    public static <T> PageResult<T> toPage(IPage<T> page) {
        PageResult<T> result = new PageResult<>();
        result.setItems(page.getRecords());
        result.setTotal((int) page.getTotal());
        result.setPageNo((int) page.getCurrent());
        result.setPageSize((int) page.getSize());
        result.setTotalPage(page.getTotal() % page.getSize() == 0 ?
                (int) (page.getTotal() / page.getSize()) : (int) (page.getTotal() / page.getSize() + 1));
        return result;
    }

    public static <T> PageResult<T> toPage(IPage<?> page, List<T> list) {
        PageResult<T> result = new PageResult<>();
        result.setItems(list);
        result.setTotal((int) page.getTotal());
        result.setPageNo((int) page.getCurrent());
        result.setPageSize((int) page.getSize());
        result.setTotalPage(page.getTotal() % page.getSize() == 0 ?
                (int) (page.getTotal() / page.getSize()) : (int) (page.getTotal() / page.getSize() + 1));
        return result;
    }

    public static <T> PageResult<T> toPage(PageResult<?> res, List<T> list) {
        PageResult<T> result = new PageResult<>();
        BeanUtils.copyProperties(res, result);
        result.setItems(list);
        return result;
    }
}

postman測(cè)試

Java 多輸入框查詢需求實(shí)現(xiàn),java,開發(fā)語言

Java 多輸入框查詢需求實(shí)現(xiàn),java,開發(fā)語言

Java 多輸入框查詢需求實(shí)現(xiàn),java,開發(fā)語言


?? 結(jié)語:創(chuàng)作不易,如果覺得博主的文章賞心悅目,還請(qǐng)——點(diǎn)贊??收藏??評(píng)論??


Java 多輸入框查詢需求實(shí)現(xiàn),java,開發(fā)語言文章來源地址http://www.zghlxwxcb.cn/news/detail-712954.html

到了這里,關(guān)于Java 多輸入框查詢需求實(shí)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【業(yè)務(wù)功能篇20】Springboot java邏輯實(shí)現(xiàn)動(dòng)態(tài)行轉(zhuǎn)列需求

    【業(yè)務(wù)功能篇20】Springboot java邏輯實(shí)現(xiàn)動(dòng)態(tài)行轉(zhuǎn)列需求

    在此前,我也寫過一個(gè)行轉(zhuǎn)列的文章,是用存儲(chǔ)過程sql處理的一個(gè)動(dòng)態(tài)的邏輯 Mysql 存儲(chǔ)過程Mybatis框架call調(diào)用 實(shí)現(xiàn)動(dòng)態(tài)行轉(zhuǎn)列 那么后面我們同樣又接收了業(yè)務(wù)的一個(gè)新需求,針對(duì)的是不同的業(yè)務(wù)數(shù)據(jù),做的同樣的一個(gè)展示數(shù)據(jù)報(bào)表,同樣還是產(chǎn)品歸屬信息表頭,拼接查詢年

    2024年02月09日
    瀏覽(32)
  • 使用springboot實(shí)現(xiàn)查詢更改數(shù)據(jù)庫需求

    使用springboot實(shí)現(xiàn)簡(jiǎn)單的數(shù)據(jù)庫數(shù)據(jù)交互請(qǐng)求 實(shí)現(xiàn):通過springboot框架,實(shí)現(xiàn)接口 /user/view; 查詢數(shù)據(jù)庫user表中的user數(shù)據(jù), /user/insert; 新增user數(shù)據(jù)到user表 /user/update 修改user的對(duì)應(yīng)user信息 集成規(guī)范數(shù)據(jù)響應(yīng): 功能實(shí)現(xiàn): 定義簡(jiǎn)單的user類并添加對(duì)應(yīng)的user表,用于數(shù)據(jù)交互 創(chuàng)建數(shù)據(jù)訪問

    2024年02月16日
    瀏覽(21)
  • Java實(shí)現(xiàn)輸入學(xué)號(hào)、姓名、年齡,并對(duì)其進(jìn)行輸出

    Java實(shí)現(xiàn)輸入學(xué)號(hào)、姓名、年齡,并對(duì)其進(jìn)行輸出

    一、前言 二、代碼部分 三、程序運(yùn)行結(jié)果(面板彈出)? 四、涉及到的知識(shí)點(diǎn)代碼 1.本代碼是我在上學(xué)時(shí)寫的,有一些地方?jīng)]能完美實(shí)現(xiàn),請(qǐng)包涵也請(qǐng)多賜教! 2.本彈窗界面可以根據(jù)簡(jiǎn)單的要求進(jìn)行輸入,并顯示是否正確,該文章代碼設(shè)置的是在代碼實(shí)現(xiàn)輸入學(xué)號(hào)、姓名、

    2024年02月07日
    瀏覽(24)
  • 【華為OD機(jī)考 統(tǒng)一考試機(jī)試C卷】 密碼輸入檢測(cè)(C++ Java JavaScript Python C語言)

    2023年11月份,華為官方已經(jīng)將 華為OD機(jī)考:OD統(tǒng)一考試(A卷 / B卷)切換到 OD統(tǒng)一考試(C卷)和 OD統(tǒng)一考試(D卷) 。 真題目錄:華為OD機(jī)考機(jī)試 真題目錄(C卷 + D卷 + B卷 + A卷) + 考點(diǎn)說明 專欄:2023華為OD機(jī)試( B卷+C卷+D卷)(C++JavaJSPy) 華為OD面試真題精選:華為OD面試真題精

    2024年02月02日
    瀏覽(19)
  • Java實(shí)戰(zhàn):SpringBoot+ElasticSearch 實(shí)現(xiàn)模糊查詢

    本文將詳細(xì)介紹如何使用SpringBoot整合ElasticSearch,實(shí)現(xiàn)模糊查詢、批量CRUD、排序、分頁和高亮功能。我們將深入探討ElasticSearch的相關(guān)概念和技術(shù)細(xì)節(jié),以及如何使用SpringData Elasticsearch庫簡(jiǎn)化開發(fā)過程。 ElasticSearch是一個(gè)基于Lucene構(gòu)建的開源搜索引擎,它提供了一個(gè)分布式、多

    2024年04月25日
    瀏覽(22)
  • 開發(fā)語言漫談-Java

    ? ? ? ? 由于C++過于復(fù)雜,Java誕生了。與C++相比,Java更易于學(xué)習(xí)和使用,它去掉C++中的指針和解決了內(nèi)存管理問題。Java提供了垃圾自動(dòng)回收機(jī)制,自動(dòng)管理不再使用的內(nèi)存。Python又進(jìn)一步簡(jiǎn)化,使得語法更簡(jiǎn)潔,更易于閱讀和編寫。當(dāng)然隨著簡(jiǎn)化,性能就越來越低。 ? ?

    2024年04月10日
    瀏覽(25)
  • Java分頁查詢的幾種實(shí)現(xiàn)方法

    Java分頁查詢的幾種實(shí)現(xiàn)方法

    最近在做需求的過程中遇到幾個(gè)需要分頁查詢的需求,我也對(duì)分頁有了較深的了解。分頁一般分為兩種一種是直接在sql中分頁,一種是在內(nèi)存中分頁。本文僅針對(duì)內(nèi)存中分頁做記錄。 第一種 ? ?如果是一個(gè)查詢接口,向接口中傳入page,和size(page默認(rèn)值1,size默認(rèn)值10)即可

    2024年02月06日
    瀏覽(33)
  • ElasticSearch進(jìn)階:多種查詢操作,各種ES查詢以及在Java中的實(shí)現(xiàn)

    ElasticSearch進(jìn)階:多種查詢操作,各種ES查詢以及在Java中的實(shí)現(xiàn)

    目錄 前言 1 詞條查詢 1.1 等值查詢-term 1.2 多值查詢-terms 1.3 范圍查詢-range 1.4 前綴查詢-prefix 1.5 通配符查詢-wildcard 2 復(fù)合查詢 2.1 布爾查詢 2.2 Filter查詢 3 聚合查詢 3.1 最值、平均值、求和 3.2 去重查詢 3.3 分組聚合 3.3.1 單條件分組 3.3.2 多條件分組 3.4 過濾聚合 ElasticSearch 第一篇

    2024年02月02日
    瀏覽(26)
  • 【藍(lán)橋杯備賽Java組】語言基礎(chǔ)|競(jìng)賽常用庫函數(shù)|輸入輸出|String的使用|常見的數(shù)學(xué)方法|大小寫轉(zhuǎn)換

    【藍(lán)橋杯備賽Java組】語言基礎(chǔ)|競(jìng)賽常用庫函數(shù)|輸入輸出|String的使用|常見的數(shù)學(xué)方法|大小寫轉(zhuǎn)換

    ???個(gè)人主頁:深魚~ ??收錄專欄:藍(lán)橋杯 ??歡迎 ??點(diǎn)贊?評(píng)論?收藏 目錄 一、編程基礎(chǔ) 1.1 Java類的創(chuàng)建 ?1.2 Java方法 ?1.3 輸入輸出 ?1.4 String的使用 二、競(jìng)賽常用庫函數(shù) 1.常見的數(shù)學(xué)方法 2.大小寫轉(zhuǎn)換 前些天發(fā)現(xiàn)了一個(gè)巨牛的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風(fēng)趣幽默,

    2024年01月21日
    瀏覽(89)
  • 基于Java+SpringBoot+Vue+Uniapp小程序前后端分離租房管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)(支持支付寶支付、有需求解析文檔50頁、演示視頻)

    基于Java+SpringBoot+Vue+Uniapp小程序前后端分離租房管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)(支持支付寶支付、有需求解析文檔50頁、演示視頻)

    博主介紹: ?全網(wǎng)粉絲5W,全棧開發(fā)工程師,從事多年軟件開發(fā),在大廠呆過。持有軟件中級(jí)、六級(jí)等證書??商峁┪⒎?wù)項(xiàng)目搭建與畢業(yè)項(xiàng)目實(shí)戰(zhàn),博主也曾寫過優(yōu)秀論文,查重率極低,在這方面有豐富的經(jīng)驗(yàn)? 博主作品: 《Java項(xiàng)目案例》主要基于SpringBoot+MyBatis/MyBatis-

    2024年02月06日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包