设计网站广告标语,网站信息维护方案,中国建设网官方网站平台,汕头网站设计有限公司#x1f497;wei_shuo的个人主页 #x1f4ab;wei_shuo的学习社区 #x1f310;Hello World #xff01; 多输入框查询
需求分析 任意一个输入框#xff0c;输入内容点击搜索都可以精准搜索到对应的内容 代码实现 Controller接口编写 PostMapping(merchant/managewei_shuo的个人主页 wei_shuo的学习社区 Hello World 多输入框查询
需求分析 任意一个输入框输入内容点击搜索都可以精准搜索到对应的内容 代码实现 Controller接口编写 PostMapping(merchant/manage)public ResultPageResultDisputeMerchantManageResponsemerchantDisputeManage(RequestBody DisputeMerchantManageRequest request) {return Result.succ(merchantDisputeFacade.merchantDisputeManage(request));}ResultPageResultDisputeMerchantManageResponse:返回给前端的字段VORequestBody DisputeMerchantManageRequest request:接收前端传递的JSON数据BOmerchantDisputeFacade.merchantDisputeManage(request):调用Service的merchantDisputeManage方法传递接受的参数request Service编写 MerchantDisputeFacade.java public PageResultDisputeMerchantManageResponse merchantDisputeManage(DisputeMerchantManageRequest request) {DisputeMerchantManageBO manageBO DisputeMerchantManageBO.convert(request);ListDisputeMerchantManageResponse list merchantDisputeService.merchantDisputeManage(manageBO);PageResultDisputeMerchantManageResponse pageResult PageResult. DisputeMerchantManageResponsebuilder().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对象 request 转换为 DisputeMerchantManageBO对象 manageBOListDisputeMerchantManageResponse list merchantDisputeService.merchantDisputeManage(manageBO):调用merchantDisputeService中的merchantDisputeManage方法传递manageBO作为参数然后获取一个List类型的结果列表 PageResultDisputeMerchantManageResponse pageResult PageResult. DisputeMerchantManageResponsebuilder().pageNo(Integer.parseInt(request.getPageNo())).pageSize(Integer.parseInt(request.getPageSize())).total(merchantDisputeService.merchantDisputeManageCount(manageBO)).items(list).build();PageResultDisputeMerchantManageResponse:泛型类封装分页查询结果包含页面信息、页码、每页条目数、总记录数以及当前页面的数据项列表PageResult.DisputeMerchantManageResponsebuilder():创建了用于构建PageResultDisputeMerchantManageResponse对象的构造器后续代码可以通过该构造器设置分页信息、总记录数和当前页面的数据项列表最终得到一个完整的PageResult对象.pageNo(Integer.parseInt(request.getPageNo())):设置PageResult对象的当前页码 .pageSize(Integer.parseInt(request.getPageSize())):设置PageResult对象的每页条目数 .total(merchantDisputeService.merchantDisputeManageCount(manageBO)):设置PageResult对象的总记录数 .items(list).build():设置PageResult对象的数据项列表并完成构建PageResult对象.items(list):获取的数据项列表list设置为PageResult对象的数据项列表属性.build():完成PageResult对象的构建最终得到一个完整的PageResult对象 Service编写 MerchantDisputeService.java public ListDisputeMerchantManageResponse merchantDisputeManage(DisputeMerchantManageBO disputeMerchantManageBO) {Merchant merchant AuthContextHolder.getLoginMerchant();disputeMerchantManageBO.setMerchantNo(merchant.getMerchantNo());return merchantDisputeMapper.merchantDisputeManage(disputeMerchantManageBO);}Merchant merchant AuthContextHolder.getLoginMerchant():通过AuthContextHolder获取当前登录的商家Merchant对象AuthContextHolder用于在当前线程的上下文中存储和管理认证信息 disputeMerchantManageBO.setMerchantNo(merchant.getMerchantNo()):获取merchant中的MerchantNo(商户号)并存储在disputeMerchantManageBO中merchantDisputeMapper.merchantDisputeManage(disputeMerchantManageBO):调用Mapper层merchantDisputeManage方法将disputeMerchantManageBO作为参数传递给Mapper Mapper ListDisputeMerchantManageResponse merchantDisputeManage(DisputeMerchantManageBO disputeMerchantManageBO);Mapper.xml 通过联表查询查询merchant_dispute和transaction_order表对应字段通过对disputeMerchantManageBO字段传入的条件动态生成查询语句并按照创建时间进行降序排序最后返回指定分页范围内的结果 select idmerchantDisputeManage resultTypecom.moozumi.bean.response.dispute.DisputeMerchantManageResponseselect md.id disputeId,md.status disputeStatus,md.type disputeType,o.merchant_no merchantNo,o.unique_iduniqueId,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_idfrom merchant_dispute md,transaction_order owhere md.order_id o.unique_idif testmerchantNo ! null and merchantNo ! and o.merchant_no #{merchantNo}/ifif testuniqueId ! null and uniqueId ! and o.unique_id #{uniqueId}/ifif testdisputeStatus ! nulland md.status #{disputeStatus}/ifif testdisputeType ! nulland md.type #{disputeType}/ifif testisReply ! nulland md.is_reply #{isReply}/ifif testisChargeback ! nulland o.is_chargeback #{isChargeback}/ifif testapplicationDomain ! null and applicationDomain ! and o.application_domain #{applicationDomain}/ifif testorderId ! null and orderId ! and md.order_id #{orderId}/iforder by md.created_at desclimit #{limit} offset #{offset}/selectBO对前端传递参数进行接收处理 使用DisputeMerchantManageBO处理request的主要目的是为了在业务逻辑层Service层中更好地封装业务逻辑和数据处理 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 转换成 BOpublic 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请求类前端向后端请求的字段 DisputeMerchantManageRequest.java DisputeMerchantManageRequest字段对应搜索框需要搜索的字段 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响应类后端响应给前端的字段 DisputeMerchantManageResponse后端通过DisputeMerchantManageRequest字段查询数据库返回查询出的数据 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 PageResultT implements Serializable {ApiModelProperty(总记录数)private Integer total;private Integer pageNo;private Integer pageSize;private Integer totalPage;ApiModelProperty(列表数据)Builder.Defaultprivate ListT items Collections.emptyList();public static T PageResultT toPage(IPageT page) {PageResultT 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 PageResultT toPage(IPage? page, ListT list) {PageResultT 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 PageResultT toPage(PageResult? res, ListT list) {PageResultT result new PageResult();BeanUtils.copyProperties(res, result);result.setItems(list);return result;}
}postman测试 结语创作不易如果觉得博主的文章赏心悦目还请——点赞收藏⭐️评论