diff --git a/src/main/java/com/gxwebsoft/house/controller/HouseTestDataController.java b/src/main/java/com/gxwebsoft/house/controller/HouseTestDataController.java new file mode 100644 index 0000000..38e9140 --- /dev/null +++ b/src/main/java/com/gxwebsoft/house/controller/HouseTestDataController.java @@ -0,0 +1,74 @@ +package com.gxwebsoft.house.controller; + +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.house.entity.HouseInfo; +import com.gxwebsoft.house.service.HouseInfoService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.util.Date; + +/** + * 房源测试数据控制器 + * + * @author 科技小王子 + * @since 2025-08-07 + */ +@Tag(name = "房源测试数据管理") +@RestController +@RequestMapping("/api/house/test-data") +public class HouseTestDataController extends BaseController { + + @Resource + private HouseInfoService houseInfoService; + + @Operation(summary = "创建测试数据") + @PostMapping("/create") + public ApiResult createTestData() { + try { + // 创建5个测试房源,价格不同 + createTestHouse("碧园大厦B", "223", new BigDecimal("8920"), 10058); + createTestHouse("碧园大厦B", "155", new BigDecimal("6200"), 10058); + createTestHouse("碧园大厦B", "92", new BigDecimal("3680"), 10058); + createTestHouse("龙光国际A", "99", new BigDecimal("4455"), 10058); + createTestHouse("万达广场C", "120", new BigDecimal("5500"), 10058); + + return success("测试数据创建成功!"); + } catch (Exception e) { + return fail("创建测试数据失败:" + e.getMessage()); + } + } + + private void createTestHouse(String title, String extent, BigDecimal monthlyRent, Integer tenantId) { + HouseInfo house = new HouseInfo(); + house.setHouseTitle(title); + house.setExtent(extent); + house.setMonthlyRent(monthlyRent); + house.setRent(monthlyRent); + house.setTenantId(tenantId); + house.setStatus(0); // 通过状态 + house.setDeleted(0); + house.setRecommend(0); + house.setUserId(1); + house.setCreateTime(new Date()); + house.setUpdateTime(new Date()); + house.setCityByHouse("南宁"); + house.setHouseType("办公室"); + house.setLeaseMethod("整租"); + house.setFloor("10层"); + house.setRealName("测试用户"); + house.setPhone("13800138000"); + house.setProvince("广西"); + house.setCity("南宁"); + house.setRegion("青秀区"); + house.setAddress("测试地址"); + + houseInfoService.save(house); + } +} diff --git a/src/main/java/com/gxwebsoft/house/mapper/xml/HouseInfoMapper.xml b/src/main/java/com/gxwebsoft/house/mapper/xml/HouseInfoMapper.xml index bbc00b5..1182a92 100644 --- a/src/main/java/com/gxwebsoft/house/mapper/xml/HouseInfoMapper.xml +++ b/src/main/java/com/gxwebsoft/house/mapper/xml/HouseInfoMapper.xml @@ -128,6 +128,49 @@ OR a.room_number LIKE CONCAT('%', #{param.keywords}, '%') ) + + + + + AND a.monthly_rent < 1000 + + + AND a.monthly_rent >= 1000 AND a.monthly_rent <= 3000 + + + AND a.monthly_rent >= 3000 AND a.monthly_rent <= 5000 + + + AND a.monthly_rent >= 5000 AND a.monthly_rent <= 10000 + + + AND a.monthly_rent >= 10000 AND a.monthly_rent <= 20000 + + + AND a.monthly_rent > 20000 + + + + + + + + AND a.extent < 50 + + + AND a.extent >= 50 AND a.extent <= 100 + + + AND a.extent >= 100 AND a.extent <= 150 + + + AND a.extent >= 150 AND a.extent <= 200 + + + AND a.extent > 200 + + + @@ -137,24 +180,19 @@ a.create_time desc, - a.monthly_rent asc, + CAST(IFNULL(a.monthly_rent, 0) AS DECIMAL(10,2)) asc, - a.monthly_rent desc, + CAST(IFNULL(a.monthly_rent, 0) AS DECIMAL(10,2)) desc, - a.extent asc, + CAST(IFNULL(a.extent, 0) AS DECIMAL(10,2)) asc, - a.extent desc, - - - ABS(a.monthly_rent - #{param.priceScene}), - - - - ABS(a.extent - #{param.extentScene}), + CAST(IFNULL(a.extent, 0) AS DECIMAL(10,2)) desc, + + a.recommend desc, a.create_time desc diff --git a/src/main/java/com/gxwebsoft/house/service/impl/HouseInfoServiceImpl.java b/src/main/java/com/gxwebsoft/house/service/impl/HouseInfoServiceImpl.java index 85b5f70..4f6cc98 100644 --- a/src/main/java/com/gxwebsoft/house/service/impl/HouseInfoServiceImpl.java +++ b/src/main/java/com/gxwebsoft/house/service/impl/HouseInfoServiceImpl.java @@ -63,7 +63,10 @@ public class HouseInfoServiceImpl extends ServiceImpl pageRel(HouseInfoParam param) { PageParam page = new PageParam<>(param); - page.setDefaultOrder("create_time desc"); + // 只有在没有指定排序场景时才使用默认排序 + if (param.getSortScene() == null || param.getSortScene().isEmpty()) { + page.setDefaultOrder("create_time desc"); + } List list = baseMapper.selectPageRel(page, param); return new PageResult<>(list, page.getTotal()); } @@ -73,7 +76,10 @@ public class HouseInfoServiceImpl extends ServiceImpl list = baseMapper.selectListRel(param); // 排序 PageParam page = new PageParam<>(); - page.setDefaultOrder("create_time desc"); + // 只有在没有指定排序场景时才使用默认排序 + if (param.getSortScene() == null || param.getSortScene().isEmpty()) { + page.setDefaultOrder("create_time desc"); + } return page.sortRecords(list); }