package com.java110.fee.api; import com.alibaba.fastjson.JSONObject; import com.java110.dto.applyRoomDiscount.ApplyRoomDiscountDto; import com.java110.dto.applyRoomDiscountType.ApplyRoomDiscountTypeDto; import com.java110.fee.bmo.applyRoomDiscount.IAuditApplyRoomDiscountBMO; import com.java110.fee.bmo.applyRoomDiscount.IDeleteApplyRoomDiscountBMO; import com.java110.fee.bmo.applyRoomDiscount.IGetApplyRoomDiscountBMO; import com.java110.fee.bmo.applyRoomDiscount.ISaveApplyRoomDiscountBMO; import com.java110.fee.bmo.applyRoomDiscount.IUpdateApplyRoomDiscountBMO; import com.java110.fee.bmo.applyRoomDiscountType.IDeleteApplyRoomDiscountTypeBMO; import com.java110.fee.bmo.applyRoomDiscountType.IGetApplyRoomDiscountTypeBMO; import com.java110.fee.bmo.applyRoomDiscountType.ISaveApplyRoomDiscountTypeBMO; import com.java110.fee.bmo.applyRoomDiscountType.IUpdateApplyRoomDiscountTypeBMO; import com.java110.intf.fee.IApplyRoomDiscountInnerServiceSMO; import com.java110.po.applyRoomDiscount.ApplyRoomDiscountPo; import com.java110.po.applyRoomDiscountType.ApplyRoomDiscountTypePo; import com.java110.utils.util.Assert; import com.java110.utils.util.BeanConvertUtil; import com.java110.utils.util.StringUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; @RestController @RequestMapping(value = "/applyRoomDiscount") public class ApplyRoomDiscountApi { @Autowired private ISaveApplyRoomDiscountBMO saveApplyRoomDiscountBMOImpl; @Autowired private IUpdateApplyRoomDiscountBMO updateApplyRoomDiscountBMOImpl; @Autowired private IDeleteApplyRoomDiscountBMO deleteApplyRoomDiscountBMOImpl; @Autowired private IGetApplyRoomDiscountBMO getApplyRoomDiscountBMOImpl; @Autowired private IAuditApplyRoomDiscountBMO auditApplyRoomDiscountBMOImpl; @Autowired private ISaveApplyRoomDiscountTypeBMO saveApplyRoomDiscountTypeBMOImpl; @Autowired private IUpdateApplyRoomDiscountTypeBMO updateApplyRoomDiscountTypeBMOImpl; @Autowired private IDeleteApplyRoomDiscountTypeBMO deleteApplyRoomDiscountTypeBMOImpl; @Autowired private IGetApplyRoomDiscountTypeBMO getApplyRoomDiscountTypeBMOImpl; @Autowired private IApplyRoomDiscountInnerServiceSMO applyRoomDiscountInnerServiceSMOImpl; /** * 优惠申请 * * @param reqJson * @return * @serviceCode /applyRoomDiscount/saveApplyRoomDiscount * @path /app/applyRoomDiscount/saveApplyRoomDiscount */ @RequestMapping(value = "/saveApplyRoomDiscount", method = RequestMethod.POST) public ResponseEntity saveApplyRoomDiscount(@RequestBody JSONObject reqJson) throws ParseException { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Assert.hasKeyAndValue(reqJson, "communityId", "请求报文中未包含communityId"); Assert.hasKeyAndValue(reqJson, "roomId", "请求报文中未包含roomId"); Assert.hasKeyAndValue(reqJson, "roomName", "请求报文中未包含roomName"); Assert.hasKeyAndValue(reqJson, "startTime", "请求报文中未包含startTime"); Assert.hasKeyAndValue(reqJson, "endTime", "请求报文中未包含endTime"); Assert.hasKeyAndValue(reqJson, "applyType", "请求报文中未包含applyType"); ApplyRoomDiscountPo applyRoomDiscountPo = BeanConvertUtil.covertBean(reqJson, ApplyRoomDiscountPo.class); ApplyRoomDiscountDto applyRoomDiscountDto = new ApplyRoomDiscountDto(); applyRoomDiscountDto.setCommunityId(applyRoomDiscountPo.getCommunityId()); applyRoomDiscountDto.setRoomId(applyRoomDiscountPo.getRoomId()); //查询折扣申请表中该房屋下符合条件的最新的一条数据 List applyRoomDiscountDtos = applyRoomDiscountInnerServiceSMOImpl.queryFirstApplyRoomDiscounts(applyRoomDiscountDto); //获取本次填写的开始时间 Date startDate = simpleDateFormat.parse(applyRoomDiscountPo.getStartTime()); if (applyRoomDiscountDtos.size() == 0) { return saveApplyRoomDiscountBMOImpl.save(applyRoomDiscountPo); } else if (applyRoomDiscountDtos.size() > 0) { //取出结束时间 String endTime = applyRoomDiscountDtos.get(0).getEndTime(); Date finishTime = simpleDateFormat.parse(endTime); if (startDate.getTime() - finishTime.getTime() >= 0) { return saveApplyRoomDiscountBMOImpl.save(applyRoomDiscountPo); } else { throw new UnsupportedOperationException("该时间段已经申请过空置房,请重新输入空置房申请开始和结束时间"); } } else { throw new UnsupportedOperationException("信息错误"); } } /** * 验房接口 * * @param reqJson * @return * @serviceCode /applyRoomDiscount/updateApplyRoomDiscount * @path /app/applyRoomDiscount/updateApplyRoomDiscount */ @RequestMapping(value = "/updateApplyRoomDiscount", method = RequestMethod.POST) public ResponseEntity updateApplyRoomDiscount(@RequestBody JSONObject reqJson, @RequestHeader(value = "user-id") String userId) { Assert.hasKeyAndValue(reqJson, "communityId", "请求报文中未包含communityId"); Assert.hasKeyAndValue(reqJson, "state", "请求报文中未包含验房状态"); Assert.hasKeyAndValue(reqJson, "startTime", "请求报文中未包含开始时间"); Assert.hasKeyAndValue(reqJson, "endTime", "请求报文中未包含结束时间"); Assert.hasKeyAndValue(reqJson, "checkRemark", "请求报文中未包含验房说明"); Assert.hasKeyAndValue(reqJson, "ardId", "ardId不能为空"); ApplyRoomDiscountDto applyRoomDiscountDto = new ApplyRoomDiscountDto(); applyRoomDiscountDto.setArdId(reqJson.getString("ardId")); //查询房屋优惠申请信息 List applyRoomDiscountDtos = applyRoomDiscountInnerServiceSMOImpl.queryApplyRoomDiscounts(applyRoomDiscountDto); Assert.listOnlyOne(applyRoomDiscountDtos, "查询房屋优惠信息错误!"); //获取房屋优惠审核状态 String state = applyRoomDiscountDtos.get(0).getState(); if (!StringUtil.isEmpty(state) && !state.equals("1")) { throw new IllegalArgumentException("该房屋已验过房,无法再次进行验房!"); } reqJson.put("checkUserId", userId); ApplyRoomDiscountPo applyRoomDiscountPo = BeanConvertUtil.covertBean(reqJson, ApplyRoomDiscountPo.class); return updateApplyRoomDiscountBMOImpl.update(applyRoomDiscountPo); } /** * 审批接口 * * @param reqJson * @return * @serviceCode /applyRoomDiscount/updateReviewApplyRoomDiscount * @path /app/applyRoomDiscount/updateReviewApplyRoomDiscount */ @RequestMapping(value = "/updateReviewApplyRoomDiscount", method = RequestMethod.POST) public ResponseEntity updateReviewApplyRoomDiscount(@RequestBody JSONObject reqJson, @RequestHeader(value = "user-id") String userId) { Assert.hasKeyAndValue(reqJson, "communityId", "请求报文中未包含communityId"); Assert.hasKeyAndValue(reqJson, "state", "请求报文中未包含验房状态"); Assert.hasKeyAndValue(reqJson, "startTime", "请求报文中未包含开始时间"); Assert.hasKeyAndValue(reqJson, "endTime", "请求报文中未包含结束时间"); Assert.hasKeyAndValue(reqJson, "reviewRemark", "请求报文中未包含验房说明"); // Assert.hasKeyAndValue(reqJson, "discountId", "请求报文中未包含折扣"); Assert.hasKeyAndValue(reqJson, "ardId", "ardId不能为空"); ApplyRoomDiscountDto applyRoomDiscountDto = new ApplyRoomDiscountDto(); applyRoomDiscountDto.setArdId(reqJson.getString("ardId")); //查询房屋优惠申请信息 List applyRoomDiscountDtos = applyRoomDiscountInnerServiceSMOImpl.queryApplyRoomDiscounts(applyRoomDiscountDto); Assert.listOnlyOne(applyRoomDiscountDtos, "查询房屋优惠信息错误!"); //获取房屋优惠审核状态 String state = applyRoomDiscountDtos.get(0).getState(); if (!StringUtil.isEmpty(state) && !state.equals("2")) { throw new IllegalArgumentException("该房屋已审核过,无法再次进行审核!"); } reqJson.put("reviewUserId", userId); ApplyRoomDiscountPo applyRoomDiscountPo = BeanConvertUtil.covertBean(reqJson, ApplyRoomDiscountPo.class); return updateApplyRoomDiscountBMOImpl.update(applyRoomDiscountPo); } /** * 验房接口 * * @param reqJson * @return * @serviceCode /applyRoomDiscount/auditApplyRoomDiscount * @path /app/applyRoomDiscount/auditApplyRoomDiscount */ @RequestMapping(value = "/auditApplyRoomDiscount", method = RequestMethod.POST) public ResponseEntity auditApplyRoomDiscount(@RequestBody JSONObject reqJson) { Assert.hasKeyAndValue(reqJson, "communityId", "请求报文中未包含小区信息"); Assert.hasKeyAndValue(reqJson, "state", "请求报文中未包含验房状态"); Assert.hasKeyAndValue(reqJson, "reviewRemark", "请求报文中未包含审核说明"); Assert.hasKeyAndValue(reqJson, "ardId", "ardId不能为空"); ApplyRoomDiscountPo applyRoomDiscountPo = BeanConvertUtil.covertBean(reqJson, ApplyRoomDiscountPo.class); return auditApplyRoomDiscountBMOImpl.audit(applyRoomDiscountPo); } /** * 微信删除消息模板 * * @param reqJson * @return * @serviceCode /applyRoomDiscount/deleteApplyRoomDiscount * @path /app/applyRoomDiscount/deleteApplyRoomDiscount */ @RequestMapping(value = "/deleteApplyRoomDiscount", method = RequestMethod.POST) public ResponseEntity deleteApplyRoomDiscount(@RequestBody JSONObject reqJson) { Assert.hasKeyAndValue(reqJson, "communityId", "小区ID不能为空"); Assert.hasKeyAndValue(reqJson, "ardId", "ardId不能为空"); ApplyRoomDiscountPo applyRoomDiscountPo = BeanConvertUtil.covertBean(reqJson, ApplyRoomDiscountPo.class); return deleteApplyRoomDiscountBMOImpl.delete(applyRoomDiscountPo); } /** * 查询优惠申请 * * @param communityId 小区ID * @return * @serviceCode /applyRoomDiscount/queryApplyRoomDiscount * @path /app/applyRoomDiscount/queryApplyRoomDiscount */ @RequestMapping(value = "/queryApplyRoomDiscount", method = RequestMethod.GET) public ResponseEntity queryApplyRoomDiscount(@RequestParam(value = "communityId") String communityId, @RequestParam(value = "roomName", required = false) String roomName, @RequestParam(value = "roomId", required = false) String roomId, @RequestParam(value = "state", required = false) String state, @RequestParam(value = "applyType", required = false) String applyType, @RequestParam(value = "page") int page, @RequestParam(value = "row") int row) { ApplyRoomDiscountDto applyRoomDiscountDto = new ApplyRoomDiscountDto(); applyRoomDiscountDto.setPage(page); applyRoomDiscountDto.setRow(row); applyRoomDiscountDto.setCommunityId(communityId); applyRoomDiscountDto.setRoomName(roomName); applyRoomDiscountDto.setRoomId(roomId); applyRoomDiscountDto.setState(state); applyRoomDiscountDto.setApplyType(applyType); return getApplyRoomDiscountBMOImpl.get(applyRoomDiscountDto); } /** * 微信保存消息模板 * * @param reqJson * @return * @serviceCode /applyRoomDiscount/saveApplyRoomDiscountType * @path /app/applyRoomDiscount/saveApplyRoomDiscountType */ @RequestMapping(value = "/saveApplyRoomDiscountType", method = RequestMethod.POST) public ResponseEntity saveApplyRoomDiscountType(@RequestBody JSONObject reqJson) { Assert.hasKeyAndValue(reqJson, "communityId", "请求报文中未包含communityId"); Assert.hasKeyAndValue(reqJson, "typeName", "请求报文中未包含typeName"); ApplyRoomDiscountTypePo applyRoomDiscountTypePo = BeanConvertUtil.covertBean(reqJson, ApplyRoomDiscountTypePo.class); return saveApplyRoomDiscountTypeBMOImpl.save(applyRoomDiscountTypePo); } /** * 微信修改消息模板 * * @param reqJson * @return * @serviceCode /applyRoomDiscount/updateApplyRoomDiscountType * @path /app/applyRoomDiscount/updateApplyRoomDiscountType */ @RequestMapping(value = "/updateApplyRoomDiscountType", method = RequestMethod.POST) public ResponseEntity updateApplyRoomDiscountType(@RequestBody JSONObject reqJson) { Assert.hasKeyAndValue(reqJson, "communityId", "请求报文中未包含communityId"); Assert.hasKeyAndValue(reqJson, "typeName", "请求报文中未包含typeName"); Assert.hasKeyAndValue(reqJson, "applyType", "applyType不能为空"); ApplyRoomDiscountTypePo applyRoomDiscountTypePo = BeanConvertUtil.covertBean(reqJson, ApplyRoomDiscountTypePo.class); return updateApplyRoomDiscountTypeBMOImpl.update(applyRoomDiscountTypePo); } /** * 微信删除消息模板 * * @param reqJson * @return * @serviceCode /applyRoomDiscount/deleteApplyRoomDiscountType * @path /app/applyRoomDiscount/deleteApplyRoomDiscountType */ @RequestMapping(value = "/deleteApplyRoomDiscountType", method = RequestMethod.POST) public ResponseEntity deleteApplyRoomDiscountType(@RequestBody JSONObject reqJson) { Assert.hasKeyAndValue(reqJson, "communityId", "小区ID不能为空"); Assert.hasKeyAndValue(reqJson, "applyType", "applyType不能为空"); ApplyRoomDiscountTypePo applyRoomDiscountTypePo = BeanConvertUtil.covertBean(reqJson, ApplyRoomDiscountTypePo.class); return deleteApplyRoomDiscountTypeBMOImpl.delete(applyRoomDiscountTypePo); } /** * 微信删除消息模板 * * @param communityId 小区ID * @return * @serviceCode /applyRoomDiscount/queryApplyRoomDiscountType * @path /app/applyRoomDiscount/queryApplyRoomDiscountType */ @RequestMapping(value = "/queryApplyRoomDiscountType", method = RequestMethod.GET) public ResponseEntity queryApplyRoomDiscountType(@RequestParam(value = "communityId") String communityId, @RequestParam(value = "applyType", required = false) String applyType, @RequestParam(value = "typeName", required = false) String typeName, @RequestParam(value = "page") int page, @RequestParam(value = "row") int row) { ApplyRoomDiscountTypeDto applyRoomDiscountTypeDto = new ApplyRoomDiscountTypeDto(); applyRoomDiscountTypeDto.setPage(page); applyRoomDiscountTypeDto.setRow(row); applyRoomDiscountTypeDto.setCommunityId(communityId); applyRoomDiscountTypeDto.setApplyType(applyType); applyRoomDiscountTypeDto.setTypeName(typeName); return getApplyRoomDiscountTypeBMOImpl.get(applyRoomDiscountTypeDto); } }