package org.springblade.community.feign;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import io.swagger.annotations.ApiParam;
import org.springblade.community.entity.Agency;
import org.springblade.community.entity.Residential;
import org.springblade.community.vo.ResidentialVO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;

import javax.validation.Valid;
import java.util.List;
import java.util.Map;

/**
 * 小区表，新建小区的时候，小区也要作为一个机构存入到机构表里面，机构的编号就使用当前小区的编号 Feign
 *
 * @author lianghanqiang
 * @since 2021-03-29
 */
@FeignClient(value = "cyzh-community",path = "/feign/residential")
public interface IResidentialClient  {

	/**
	 * 详情
	 */
	@GetMapping("/detail")
    ResidentialVO detail(@SpringQueryMap Residential residential);
	/**
	 * 通过id获取
	 */
	@GetMapping("/getById")
	Residential getById(@RequestParam Long id);

	/**
	 * 查询 小区表，新建小区的时候，小区也要作为一个机构存入到机构表里面，机构的编号就使用当前小区的编号
	 */
	@GetMapping("/list")
    List<ResidentialVO> list(@RequestParam Map<String,Object> residential);



	/**
	 * 新增 小区表，新建小区的时候，小区也要作为一个机构存入到机构表里面，机构的编号就使用当前小区的编号
	 */
	@PostMapping("/save")
	boolean save(@Valid @RequestBody Residential residential);

	/**
	 * 修改 小区表，新建小区的时候，小区也要作为一个机构存入到机构表里面，机构的编号就使用当前小区的编号
	 */
	@PostMapping("/update")
    boolean update(@Valid @RequestBody Residential residential);

	/**
	 * 新增或修改 小区表，新建小区的时候，小区也要作为一个机构存入到机构表里面，机构的编号就使用当前小区的编号
	 */
	@PostMapping("/submit")
    boolean submit(@Valid @RequestBody Residential residential);


	/**
	 * 删除 小区表，新建小区的时候，小区也要作为一个机构存入到机构表里面，机构的编号就使用当前小区的编号
	 */
	@PostMapping("/remove")
    boolean remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids);

	@PostMapping("/listForOrg")
	List<Residential> listForOrg(@RequestBody Object[] params);

	@PostMapping("/getListWithYtelevatorXq")
	List<Residential> getListWithYtelevatorXq(@RequestParam List<Long> residentialIds);

	@GetMapping("/getParkResidential")
	List<Residential> getParkResidential() ;
	@GetMapping("/listWithOutCompany")
	List<Residential> listWithOutCompany(@RequestParam Map<String, Object> residential);

	/**
	 * 根据主键集合查询区域
	 */
	@GetMapping("/listByIds")
	List<Residential> listByIds(@ApiParam(value = "主键集合", required = true) @RequestParam String ids);
}
