package com.java110.user.api;
import com.alibaba.fastjson.JSONObject;
import com.java110.dto.renting.RentingAppointmentDto;
import com.java110.dto.store.StoreDto;
import com.java110.po.renting.RentingAppointmentPo;
import com.java110.user.bmo.rentingAppointment.*;
import com.java110.utils.util.Assert;
import com.java110.utils.util.BeanConvertUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
/**
* 租赁 预约接口类 controller
*
* add by 吴学文
*/
@RestController
@RequestMapping(value = "/rentingAppointment")
public class RentingAppointmentApi {
@Autowired
private ISaveRentingAppointmentBMO saveRentingAppointmentBMOImpl;
@Autowired
private IUpdateRentingAppointmentBMO updateRentingAppointmentBMOImpl;
@Autowired
private IDeleteRentingAppointmentBMO deleteRentingAppointmentBMOImpl;
@Autowired
private IGetRentingAppointmentBMO getRentingAppointmentBMOImpl;
@Autowired
private IConfirmRentingBMO confirmRentingBMOImpl;
/**
* 微信保存消息模板
*
* @param reqJson
* @return
* @serviceCode /rentingAppointment/saveRentingAppointment
* @path /app/rentingAppointment/saveRentingAppointment
*/
@RequestMapping(value = "/saveRentingAppointment", method = RequestMethod.POST)
public ResponseEntity saveRentingAppointment(@RequestBody JSONObject reqJson,
@RequestHeader(value = "store-id") String storeId) {
Assert.hasKeyAndValue(reqJson, "tenantName", "请求报文中未包含tenantName");
Assert.hasKeyAndValue(reqJson, "tenantSex", "请求报文中未包含tenantSex");
Assert.hasKeyAndValue(reqJson, "tenantTel", "请求报文中未包含tenantTel");
Assert.hasKeyAndValue(reqJson, "appointmentTime", "请求报文中未包含appointmentTime");
RentingAppointmentPo rentingAppointmentPo = BeanConvertUtil.covertBean(reqJson, RentingAppointmentPo.class);
rentingAppointmentPo.setStoreId(storeId);
return saveRentingAppointmentBMOImpl.save(rentingAppointmentPo);
}
/**
* 微信修改消息模板
*
* @param reqJson
* @return
* @serviceCode /rentingAppointment/updateRentingAppointment
* @path /app/rentingAppointment/updateRentingAppointment
*/
@RequestMapping(value = "/updateRentingAppointment", method = RequestMethod.POST)
public ResponseEntity updateRentingAppointment(@RequestBody JSONObject reqJson) {
// Assert.hasKeyAndValue(reqJson, "tenantName", "请求报文中未包含tenantName");
// Assert.hasKeyAndValue(reqJson, "tenantSex", "请求报文中未包含tenantSex");
// Assert.hasKeyAndValue(reqJson, "tenantTel", "请求报文中未包含tenantTel");
// Assert.hasKeyAndValue(reqJson, "appointmentTime", "请求报文中未包含appointmentTime");
Assert.hasKeyAndValue(reqJson, "appointmentId", "appointmentId不能为空");
RentingAppointmentPo rentingAppointmentPo = BeanConvertUtil.covertBean(reqJson, RentingAppointmentPo.class);
return updateRentingAppointmentBMOImpl.update(rentingAppointmentPo);
}
/**
* 微信删除消息模板
*
* @param reqJson
* @return
* @serviceCode /rentingAppointment/deleteRentingAppointment
* @path /app/rentingAppointment/deleteRentingAppointment
*/
@RequestMapping(value = "/deleteRentingAppointment", method = RequestMethod.POST)
public ResponseEntity deleteRentingAppointment(@RequestBody JSONObject reqJson) {
Assert.hasKeyAndValue(reqJson, "communityId", "小区ID不能为空");
Assert.hasKeyAndValue(reqJson, "appointmentId", "appointmentId不能为空");
RentingAppointmentPo rentingAppointmentPo = BeanConvertUtil.covertBean(reqJson, RentingAppointmentPo.class);
return deleteRentingAppointmentBMOImpl.delete(rentingAppointmentPo);
}
/**
* 微信删除消息模板
*
* @param storeId 商户ID
* @return
* @serviceCode /rentingAppointment/queryRentingAppointment
* @path /app/rentingAppointment/queryRentingAppointment
*/
@RequestMapping(value = "/queryRentingAppointment", method = RequestMethod.GET)
public ResponseEntity queryRentingAppointment(@RequestHeader(value = "store-id") String storeId,
@RequestParam(value = "page") int page,
@RequestParam(value = "row") int row,
@RequestParam(value = "state", required = false) String state,
@RequestParam(value = "tenantName", required = false) String tenantName,
@RequestParam(value = "tenantTel", required = false) String tenantTel
) {
RentingAppointmentDto rentingAppointmentDto = new RentingAppointmentDto();
rentingAppointmentDto.setPage(page);
rentingAppointmentDto.setRow(row);
if (!StoreDto.STORE_ADMIN.equals(storeId)) {
rentingAppointmentDto.setStoreId(storeId);
}
rentingAppointmentDto.setState(state);
rentingAppointmentDto.setTenantName(tenantName);
rentingAppointmentDto.setTenantTel(tenantTel);
return getRentingAppointmentBMOImpl.get(rentingAppointmentDto);
}
/**
* 确认租房
*
* @param reqJson
* @return
* @serviceCode /rentingAppointment/confirmRenting
* @path /app/rentingAppointment/confirmRenting
*/
@RequestMapping(value = "/confirmRenting", method = RequestMethod.POST)
public ResponseEntity confirmRenting(@RequestBody JSONObject reqJson) {
Assert.hasKeyAndValue(reqJson, "appointmentId", "appointmentId不能为空");
Assert.hasKeyAndValue(reqJson, "rentingId", "rentingId不能为空");
RentingAppointmentPo rentingAppointmentPo = BeanConvertUtil.covertBean(reqJson, RentingAppointmentPo.class);
return confirmRentingBMOImpl.confirm(rentingAppointmentPo);
}
}