最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java多輸入框查詢(xún)需求實(shí)現(xiàn)方法詳解

 更新時(shí)間:2023年10月08日 10:03:01   作者:wei_shuo  
這篇文章主要給大家介紹了Java多輸入框查詢(xún)需求實(shí)現(xiàn)的相關(guān)資料,文中通過(guò)代碼以及圖文介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Java具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

多輸入框查詢(xún)

需求分析

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

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

Controller接口編寫(xiě)

 @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編寫(xiě)

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類(lèi)型的結(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>:泛型類(lèi)封裝分頁(yè)查詢(xún)結(jié)果,包含頁(yè)面信息、頁(yè)碼、每頁(yè)條目數(shù)、總記錄數(shù)以及當(dāng)前頁(yè)面的數(shù)據(jù)項(xiàng)列表
  • PageResult.<DisputeMerchantManageResponse>builder():創(chuàng)建了用于構(gòu)建PageResult<DisputeMerchantManageResponse>對(duì)象的構(gòu)造器;后續(xù)代碼可以通過(guò)該構(gòu)造器設(shè)置分頁(yè)信息、總記錄數(shù)和當(dāng)前頁(yè)面的數(shù)據(jù)項(xiàng)列表,最終得到一個(gè)完整的PageResult對(duì)象
  • .pageNo(Integer.parseInt(request.getPageNo())):設(shè)置PageResult對(duì)象的當(dāng)前頁(yè)碼
  • .pageSize(Integer.parseInt(request.getPageSize())):設(shè)置PageResult對(duì)象的每頁(yè)條目數(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編寫(xiě)

MerchantDisputeService.java

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

Mapper

    List<DisputeMerchantManageResponse> merchantDisputeManage(DisputeMerchantManageBO disputeMerchantManageBO);

Mapper.xml

通過(guò)聯(lián)表查詢(xún),查詢(xún)merchant_dispute和transaction_order表對(duì)應(yīng)字段,通過(guò)對(duì)disputeMerchantManageBO字段傳入的條件動(dòng)態(tài)生成查詢(xún)語(yǔ)句,并按照創(chuàng)建時(shí)間進(jìn)行降序排序,最后返回指定分頁(yè)范圍內(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)求類(lèi),前端向后端請(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)類(lèi),后端響應(yīng)給前端的字段

DisputeMerchantManageResponse:后端通過(guò)DisputeMerchantManageRequest字段查詢(xún)數(shù)據(jù)庫(kù)返回查詢(xún)出的數(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類(lèi)

@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è)試

總結(jié)

到此這篇關(guān)于Java多輸入框查詢(xún)需求實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Java多輸入框查詢(xún)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 服務(wù)器CPU高居不下,JAVA線程占用排查方式

    服務(wù)器CPU高居不下,JAVA線程占用排查方式

    這篇文章主要介紹了服務(wù)器CPU高居不下,JAVA線程占用排查方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 詳解hbase與hive數(shù)據(jù)同步

    詳解hbase與hive數(shù)據(jù)同步

    這篇文章主要介紹了詳解hbase與hive數(shù)據(jù)同步的相關(guān)資料,需要的朋友可以參考下
    2017-09-09
  • arthas?jprofiler做復(fù)雜鏈路的調(diào)用分析

    arthas?jprofiler做復(fù)雜鏈路的調(diào)用分析

    這篇文章主要為大家介紹了arthas?jprofiler做復(fù)雜鏈路的調(diào)用分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • 詳解Spring框架注解掃描開(kāi)啟之配置細(xì)節(jié)

    詳解Spring框架注解掃描開(kāi)啟之配置細(xì)節(jié)

    本篇文章主要介紹了詳解Spring框架注解掃描開(kāi)啟之配置細(xì)節(jié),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • JavaCV與FFmpeg音視頻流處理技巧總結(jié)大全

    JavaCV與FFmpeg音視頻流處理技巧總結(jié)大全

    JavaCV是一個(gè)開(kāi)源的Java接口,它為幾個(gè)著名的計(jì)算機(jī)視覺(jué)庫(kù)(如OpenCV、FFmpeg)提供了Java封裝,這篇文章主要給大家介紹了關(guān)于JavaCV與FFmpeg音視頻流處理技巧總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2024-05-05
  • idea解決Git分支合并沖突問(wèn)題

    idea解決Git分支合并沖突問(wèn)題

    這篇文章主要介紹了idea解決Git分支合并沖突問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 詳解springmvc 中controller與jsp傳值

    詳解springmvc 中controller與jsp傳值

    本篇文章主要介紹了springmvc 中controller與jsp傳值,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07
  • Java類(lèi)的初始化順序知識(shí)點(diǎn)總結(jié)

    Java類(lèi)的初始化順序知識(shí)點(diǎn)總結(jié)

    在本篇文章里小編給大家整理的是關(guān)于Java類(lèi)的初始化順序知識(shí)點(diǎn)總結(jié),需要的朋友們可以學(xué)習(xí)下。
    2020-02-02
  • spring cloud如何修復(fù)zuul跨域配置異常的問(wèn)題

    spring cloud如何修復(fù)zuul跨域配置異常的問(wèn)題

    最近的開(kāi)發(fā)過(guò)程中,使用spring集成了spring-cloud-zuul,在配置zuul跨域的時(shí)候遇到了問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于spring cloud如何修復(fù)zuul跨域配置異常的問(wèn)題,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-09-09
  • Java數(shù)字圖像處理之圖像灰度處理

    Java數(shù)字圖像處理之圖像灰度處理

    這篇文章主要為大家詳細(xì)介紹了Java數(shù)字圖像處理之圖像灰度處理,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06

最新評(píng)論

丰县| 乡宁县| 宁都县| 卢湾区| 柘荣县| 明溪县| 东莞市| 安新县| 商都县| 烟台市| 浠水县| 张掖市| 准格尔旗| 广宁县| 台前县| 南郑县| 秦皇岛市| 顺义区| 仁布县| 墨玉县| 正阳县| 青川县| 巩义市| 保靖县| 来宾市| 宁南县| 寿宁县| 盖州市| 理塘县| 武夷山市| 牙克石市| 仁怀市| 呼玛县| 河间市| 多伦县| 阳山县| 肃南| 双辽市| 博白县| 文水县| 穆棱市|