package cn.learn.haoke.dubbo.api.controller;
import cn.learn.haoke.dubbo.api.service.HouseResourcesService;
import cn.learn.haoke.dubbo.api.vo.TableResult;
import cn.learn.haoke.dubbo.server.pojo.HouseResources;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
@Controller
@RequestMapping("house/resources")
public class HouseResourcesController {
@Autowired
private HouseResourcesService houseResourcesService;
/**
* 新增房源
*
* @param houseResources json数据
* @return
*/
@PostMapping
@ResponseBody
public ResponseEntity<Void> save(@RequestBody HouseResources houseResources) {
try {
boolean bool = this.houseResourcesService.save(houseResources);
if (bool) {
return ResponseEntity.status(HttpStatus.CREATED).build();
}
} catch (Exception e) {
e.printStackTrace();
}
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
}
/**
* 查询房源列表
*
* @param houseResources
* @param currentPage
* @param pageSize
* @return
*/
@GetMapping
@ResponseBody
public ResponseEntity<TableResult> list(HouseResources houseResources,
@RequestParam(name = "currentPage",
defaultValue = "1") Integer currentPage,
@RequestParam(name = "pageSize",
defaultValue = "10") Integer pageSize) {
return ResponseEntity.ok(this.houseResourcesService.queryList(houseResources, currentPage,
pageSize));
}
}
package cn.learn.haoke.dubbo.api.vo;
import lombok.*;
import java.util.List;
@Data
@AllArgsConstructor
public class TableResult<T> {
private List<T> list;
private Pagination pagination;
}
package cn.learn.haoke.dubbo.api.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
@Data
@AllArgsConstructor
public class Pagination {
private Integer current;
private Integer pageSize;
private Integer total;
}
package cn.learn.haoke.dubbo.api.service;
import cn.learn.haoke.dubbo.api.vo.Pagination;
import cn.learn.haoke.dubbo.api.vo.TableResult;
import cn.learn.haoke.dubbo.server.api.ApiHouseResourcesService;
import cn.learn.haoke.dubbo.server.pojo.HouseResources;
import cn.learn.haoke.dubbo.server.vo.PageInfo;
import com.alibaba.dubbo.config.annotation.Reference;
import org.springframework.stereotype.Service;
@Service
public class HouseResourcesService {
@Reference(version = "1.0.0")
private ApiHouseResourcesService apiHouseResourcesService;
public boolean save(HouseResources houseResources) {
int result =
this.apiHouseResourcesService.saveHouseResources(houseResources);
return result == 1;
}
public TableResult<HouseResources> queryList(HouseResources houseResources, Integer currentPage, Integer pageSize) {
PageInfo<HouseResources> pageInfo = this.apiHouseResourcesService.
queryHouseResourcesList(currentPage, pageSize, houseResources);
return new TableResult<>(pageInfo.getRecords(), new Pagination(currentPage, pageSize, pageInfo.getTotal()));
}
}