diff --git a/home-service/src/main/java/com/cxx/home/controller/BillController.java b/home-service/src/main/java/com/cxx/home/controller/BillController.java index e294310..c246185 100644 --- a/home-service/src/main/java/com/cxx/home/controller/BillController.java +++ b/home-service/src/main/java/com/cxx/home/controller/BillController.java @@ -9,6 +9,7 @@ import com.cxx.home.dto.bill.BillRecordDto; import com.cxx.home.dto.bill.BillSummaryDto; import com.cxx.home.service.BillRecordService; import com.cxx.home.vo.BillQueryVo; +import com.cxx.home.vo.BillSearchVo; import com.fasterxml.jackson.annotation.JsonView; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -55,6 +56,12 @@ public class BillController { return billRecordService.queryBillSummary(billQueryVo); } + @Operation(summary = "搜索账单概要") + @GetMapping("/search") + public @JsonView(ReadView.class) List searchBillSummary(BillSearchVo billSearchVo) { + return billRecordService.searchBillSummary(billSearchVo); + } + @Operation(summary = "查询账单统计") @GetMapping("/stats/{type}") public List queryBillStats(@PathVariable("type") String type, BillQueryVo billQueryVo) { diff --git a/home-service/src/main/java/com/cxx/home/dao/BillDao.java b/home-service/src/main/java/com/cxx/home/dao/BillDao.java index 2caa71a..a897420 100644 --- a/home-service/src/main/java/com/cxx/home/dao/BillDao.java +++ b/home-service/src/main/java/com/cxx/home/dao/BillDao.java @@ -6,6 +6,7 @@ import com.cxx.home.dto.bill.BillItemDto; import com.cxx.home.dto.bill.BillRecordDto; import com.cxx.home.dto.bill.BillSummaryDto; import com.cxx.home.vo.BillQueryVo; +import com.cxx.home.vo.BillSearchVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -17,6 +18,8 @@ public interface BillDao { List queryBillSummary(@Param("query") BillQueryVo query); + List searchBillSummary(@Param("query") BillSearchVo search); + void insertBillImage(@Param("billId") Long billId, @Param("list") List imageFiles); diff --git a/home-service/src/main/java/com/cxx/home/service/BillRecordService.java b/home-service/src/main/java/com/cxx/home/service/BillRecordService.java index bf7f770..ba124ed 100644 --- a/home-service/src/main/java/com/cxx/home/service/BillRecordService.java +++ b/home-service/src/main/java/com/cxx/home/service/BillRecordService.java @@ -6,6 +6,7 @@ import com.cxx.home.dto.bill.BillItemDto; import com.cxx.home.dto.bill.BillRecordDto; import com.cxx.home.dto.bill.BillSummaryDto; import com.cxx.home.vo.BillQueryVo; +import com.cxx.home.vo.BillSearchVo; import java.util.List; @@ -18,6 +19,8 @@ public interface BillRecordService { List queryBillSummary(BillQueryVo billQueryVo); + List searchBillSummary(BillSearchVo searchVo); + List queryBillStats(String type, BillQueryVo billQueryVo); List queryBillPay(); diff --git a/home-service/src/main/java/com/cxx/home/service/impl/BillRecordServiceImpl.java b/home-service/src/main/java/com/cxx/home/service/impl/BillRecordServiceImpl.java index 3f3f2fb..64f0491 100644 --- a/home-service/src/main/java/com/cxx/home/service/impl/BillRecordServiceImpl.java +++ b/home-service/src/main/java/com/cxx/home/service/impl/BillRecordServiceImpl.java @@ -13,10 +13,13 @@ import com.cxx.framework.web.CustomException; import com.cxx.home.dao.BillDao; import com.cxx.home.service.BillRecordService; import com.cxx.home.vo.BillQueryVo; +import com.cxx.home.vo.BillSearchVo; import jakarta.annotation.Resource; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import java.util.Collection; +import java.util.Collections; import java.util.List; import java.util.Objects; @@ -131,6 +134,16 @@ public class BillRecordServiceImpl implements BillRecordService { return billDao.queryBillSummary(billQuery); } + @Override + public List searchBillSummary(BillSearchVo billSearch) { + if (billSearch.getContent().isEmpty() + && billSearch.getCategory().isEmpty() + && billSearch.getLocation().isEmpty()) { + return Collections.emptyList(); + } + return billDao.searchBillSummary(billSearch); + } + @Override public List queryBillStats(String type, BillQueryVo billQuery) { return billDao.queryBillStats(type, billQuery); diff --git a/home-service/src/main/java/com/cxx/home/vo/BillSearchVo.java b/home-service/src/main/java/com/cxx/home/vo/BillSearchVo.java new file mode 100644 index 0000000..2e9e230 --- /dev/null +++ b/home-service/src/main/java/com/cxx/home/vo/BillSearchVo.java @@ -0,0 +1,18 @@ +package com.cxx.home.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class BillSearchVo { + @Schema(description = "名称") + private String content; + + @Schema(description = "类别") + private String category; + + @Schema(description = "地址") + private String location; +} \ No newline at end of file diff --git a/home-service/src/main/resources/mapper/BillMapper.xml b/home-service/src/main/resources/mapper/BillMapper.xml index 23c626a..0f10db7 100644 --- a/home-service/src/main/resources/mapper/BillMapper.xml +++ b/home-service/src/main/resources/mapper/BillMapper.xml @@ -56,16 +56,16 @@ + + INSERT INTO bill_image (bill_id, image_url) VALUES @@ -131,6 +161,7 @@ GROUP BY c.name + ORDER BY value DESC