| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515 |
- package com.template.controller;
- import com.alibaba.fastjson.JSONObject;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.template.annotation.Encrypt;
- import com.template.api.HouseAPI;
- import com.template.common.utils.DateUtil;
- import com.template.model.dto.HouseDto;
- import com.template.model.pojo.*;
- import com.template.model.result.CommonResult;
- import com.template.model.result.PageUtils;
- import com.template.model.vo.*;
- import com.template.services.*;
- import org.springframework.beans.BeanUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.transaction.annotation.Transactional;
- import org.springframework.web.bind.annotation.RequestBody;
- import org.springframework.web.bind.annotation.RestController;
- import java.math.BigDecimal;
- import java.time.LocalDateTime;
- import java.time.format.DateTimeFormatter;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.HashSet;
- import java.util.List;
- /**
- * <p>
- * 前端控制器
- * </p>
- *
- * @author ceshi
- * @since 2023-11-06
- */
- @RestController
- //加密
- //@DESRespondSecret
- public class HouseController implements HouseAPI {
- @Autowired
- HouseService houseService;
- @Autowired
- HouseNumberService houseNumberService;
- @Autowired
- HouseNumberStateService houseNumberStateService;
- @Autowired
- PermissionSettingService permissionSettingService;
- @Autowired
- HousePriceService housePriceService;
- @Autowired
- FacilityServicesService facilityServicesService;
- @Override
- @Encrypt
- @Transactional(rollbackFor = Exception.class)//1
- public CommonResult save(@RequestBody HouseDto houseDto) {
- if (ObjectUtils.isEmpty(houseDto) && ObjectUtils.isEmpty(houseDto.getAdminId())) {
- return CommonResult.fail("参数异常");
- }
- PermissionSetting permissionSetting = permissionSettingService.getById(houseDto.getAdminId());
- if (ObjectUtils.isEmpty(permissionSetting)) {
- return CommonResult.fail("非法进入");
- }
- // 判断该用户是否拥有权限
- String houseTypeManagement = permissionSetting.getHouseTypeManagement();
- if (!"0".equals(houseTypeManagement) && !houseTypeManagement.contains("1")) {
- return CommonResult.fail("此账号暂无该权限");
- }
- House house = houseDto.getHouse();
- // List<String> roomNumbers = houseDto.getRoomNumbers();
- //
- // Integer number = house.getNumber();
- //
- // if (number != roomNumbers.size()) {
- // return CommonResult.fail("房间数量不一致");
- // }
- LambdaQueryWrapper<House> wrapper = new LambdaQueryWrapper<>();
- wrapper.eq(House::getRoomName, house.getRoomName())
- .eq(House::getRoomType, house.getRoomType());
- House one = houseService.getOne(wrapper);
- if (ObjectUtils.isNotEmpty(one)) {
- return CommonResult.fail("该房型已存在");
- }
- houseService.save(house);
- // ArrayList<HouseNumber> houseNumbers = new ArrayList<>();
- // for (String roomNumber : roomNumbers) {
- //// 修改房间
- // HouseNumber byId = houseNumberService.getById(roomNumber);
- // byId.setHouseId(house.getId()+"");
- // houseNumbers.add(byId);
- // }
- // boolean b = houseNumberService.updateBatchById(houseNumbers);
- //
- // if (b) {
- // return CommonResult.ok();
- // }
- return CommonResult.ok();
- }
- @Override
- public CommonResult getPage(int page, int size, int type, String keyWord) {
- if (ObjectUtils.isEmpty(page) && page <= 0) {
- page = 1;
- }
- if (ObjectUtils.isEmpty(size) && size <= 0) {
- size = 10;
- }
- // if (!(type == 1 || type == 2)) {
- // return CommonResult.fail("参数异常");
- // }
- PageUtils<HouseVo> pageDto = houseService.getPage(page, size, type, keyWord);
- List<HouseVo> list = pageDto.getList();
- System.out.println("list = " + list);
- return CommonResult.ok(pageDto);
- }
- @Override
- public CommonResult details(String houseId) {
- if (ObjectUtils.isEmpty(houseId)) {
- return CommonResult.fail("参数异常");
- }
- HousedetailsVo housedetailsVo = houseService.details(houseId);
- if (ObjectUtils.isNotEmpty(housedetailsVo)) {
- String roomIds = housedetailsVo.getRoomIds();
- if (ObjectUtils.isNotEmpty(roomIds)) {
- String[] split = roomIds.split(",");
- ArrayList<BuildingHouseNumberVo> vos = new ArrayList<>();
- for (int i = 0; i < split.length; i++) {
- String s = split[i];
- HouseNumber byId = houseNumberService.getById(s);
- BuildingHouseNumberVo vo = new BuildingHouseNumberVo();
- vo.setHouseNumberId(byId.getId());
- // 跟下拉列表的楼栋单元id一样
- vo.setBuildingId(byId.getBuildingId() + 1000000);
- vos.add(vo);
- }
- housedetailsVo.setList(vos);
- }
- }
- return CommonResult.ok(housedetailsVo);
- }
- @Override
- @Transactional(rollbackFor = Exception.class)//1
- public CommonResult update(HouseDto houseDto) {
- if (ObjectUtils.isEmpty(houseDto) && ObjectUtils.isEmpty(houseDto.getHouse().getId()) && ObjectUtils.isEmpty(houseDto.getAdminId())) {
- return CommonResult.fail("参数异常");
- }
- PermissionSetting permissionSetting = permissionSettingService.getById(houseDto.getAdminId());
- if (ObjectUtils.isEmpty(permissionSetting)) {
- return CommonResult.fail("非法进入");
- }
- // 判断该用户是否拥有权限
- String houseTypeManagement = permissionSetting.getHouseTypeManagement();
- if (!"0".equals(houseTypeManagement) && !houseTypeManagement.contains("2")) {
- return CommonResult.fail("此账号暂无该权限");
- }
- House house = houseDto.getHouse();
- // List<String> roomNumbers = houseDto.getRoomNumbers();
- //
- // Integer number = house.getNumber();
- //
- // if (number != roomNumbers.size()) {
- // return CommonResult.fail("房间数量不一致");
- // }
- // 判断修改的房型名称和房型类型是是否已存在
- House byId = houseService.getById(house.getId());
- String roomName = byId.getRoomName();
- Integer type = byId.getRoomType();
- if (!house.getRoomName().equals(roomName) || !type.equals(house.getRoomType())) {
- LambdaQueryWrapper<House> wrapper = new LambdaQueryWrapper<>();
- wrapper.eq(House::getRoomName, house.getRoomName())
- .eq(House::getRoomType, house.getRoomType());
- House one = houseService.getOne(wrapper);
- if (ObjectUtils.isNotEmpty(one)) {
- return CommonResult.fail("该房型已存在");
- }
- }
- houseService.updateById(house);
- return CommonResult.ok();
- // try {
- // // 通过houseId,找到房间号
- //// LambdaQueryWrapper<HouseNumber> wrapperHn = new LambdaQueryWrapper<>();
- //// wrapperHn.eq(HouseNumber::getHouseId, house.getId());
- //// List<HouseNumber> list = houseNumberService.list(wrapperHn);
- //// for (HouseNumber houseNumber : list) {
- ////// 判断房间号是否还存在
- //// String roomNumber = houseNumber.getRoomNumber();
- ////// 不存在则删除
- //// if (!roomNumbers.contains(roomNumber)) {
- ////// 判断房间是否有订单,有则不能删除
- //// LambdaQueryWrapper<HouseNumberState> wrapperHNS = new LambdaQueryWrapper<>();
- //// wrapperHNS.eq(HouseNumberState::getHouseNumberId, houseNumber.getId())
- //// .ge(HouseNumberState::getEndTime, new Date());
- //// List<HouseNumberState> houseNumberStates = houseNumberStateService.list(wrapperHNS);
- //// if (ObjectUtils.isNotEmpty(houseNumberStates) && houseNumberStates.size() > 0) {
- //// return CommonResult.fail(roomNumber + "房间在使用");
- //// }
- //// houseNumberService.removeById(houseNumber);
- ////
- //// } else {
- ////// 存在则在集合删除这个
- //// roomNumbers.remove(roomNumber);
- //// }
- //// }
- ////
- //// houseService.updateById(house);
- //// if (ObjectUtils.isNotEmpty(roomNumbers) && roomNumbers.size() > 0) {
- //// ArrayList<HouseNumber> houseNumbers = new ArrayList<>();
- //// for (String roomNumber : roomNumbers) {
- ////// 添加
- //// HouseNumber houseNumber = new HouseNumber();
- //// houseNumber.setRoomNumber(roomNumber);
- //// houseNumber.setHouseId(house.getId() + "");
- ////// 默认净房
- //// houseNumber.setHouseStatus(1);
- //////// 默认空闲
- ////// houseNumber.setStatus(1);
- ////// 默认关电
- //// houseNumber.setElectricType("2");
- ////
- //// houseNumbers.add(houseNumber);
- //// }
- //// boolean b = houseNumberService.saveOrUpdateBatch(houseNumbers);
- //// }
- // return CommonResult.ok();
- //
- // } catch (Exception e) {
- // return CommonResult.fail();
- // }
- }
- @Override
- @Transactional(rollbackFor = Exception.class)//1
- public CommonResult delete(String houseId, int adminId) {
- if (ObjectUtils.isEmpty(houseId) && ObjectUtils.isEmpty(adminId)) {
- return CommonResult.fail();
- }
- PermissionSetting permissionSetting = permissionSettingService.getById(adminId);
- if (ObjectUtils.isEmpty(permissionSetting)) {
- return CommonResult.fail("非法进入");
- }
- // 判断该用户是否拥有权限
- String houseTypeManagement = permissionSetting.getHouseTypeManagement();
- if (!"0".equals(houseTypeManagement) && !houseTypeManagement.contains("3")) {
- return CommonResult.fail("此账号暂无该权限");
- }
- // 删除房型需先删除房间号
- // 通过houseId,找到房间号
- // LambdaQueryWrapper<HouseNumber> wrapperHn = new LambdaQueryWrapper<>();
- // wrapperHn.eq(HouseNumber::getHouseId, houseId);
- // List<HouseNumber> list = houseNumberService.list(wrapperHn);
- // for (HouseNumber houseNumber : list) {
- //// 判断房间是否有订单,有则不能删除
- // LambdaQueryWrapper<HouseNumberState> wrapperHNS = new LambdaQueryWrapper<>();
- // wrapperHNS.eq(HouseNumberState::getHouseNumberId, houseNumber.getId())
- // .ge(HouseNumberState::getEndTime, new Date());
- // List<HouseNumberState> houseNumberStates = houseNumberStateService.list(wrapperHNS);
- // if (ObjectUtils.isNotEmpty(houseNumberStates) && houseNumberStates.size() > 0) {
- // return CommonResult.fail(houseNumber.getRoomNumber() + "房间在使用,无法删除");
- // }
- // }
- // for (HouseNumber houseNumber : list) {
- // Integer id = houseNumber.getId();
- // houseNumberService.removeById(id);
- // }
- House byId = houseService.getById(houseId);
- if (ObjectUtils.isEmpty(byId)) {
- return CommonResult.fail("参数异常");
- }
- List<HouseNumber> houseNumberList = houseNumberService.getHouseId(houseId);
- if (ObjectUtils.isNotEmpty(houseNumberList) || houseNumberList.size() > 0) {
- return CommonResult.fail("该房型下还有房间");
- }
- houseService.removeById(Integer.valueOf(houseId));
- return CommonResult.ok();
- }
- @Override
- public CommonResult roomNameType() {
- List<String> roomNameList = houseService.group();
- return CommonResult.ok(roomNameList);
- }
- public static void main(String[] args) {
- LocalDateTime now = LocalDateTime.now();
- LocalDateTime start = now.withHour(0).withMinute(0).withSecond(0);
- LocalDateTime end = now.withHour(23).withMinute(59).withSecond(59);
- System.out.println("start = " + start);
- System.out.println("end = " + end);
- }
- @Override
- public CommonResult getAppletPage(int page, int size, int type, String startTime, String endTime) {
- if (ObjectUtils.isEmpty(page) && page <= 0) {
- page = 1;
- }
- if (ObjectUtils.isEmpty(size) && size <= 0) {
- size = 10;
- }
- if (ObjectUtils.isEmpty(startTime) && ObjectUtils.isEmpty(endTime)) {
- return CommonResult.fail("参数异常");
- }
- DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
- // 判断传过来的时间和当前时间比较
- LocalDateTime now = LocalDateTime.now();
- LocalDateTime date = LocalDateTime.parse(startTime, dateTimeFormatter1);
- if (now.isAfter(date)) {
- startTime = now.format(dateTimeFormatter1);
- }
- LambdaQueryWrapper<House> wrapper = new LambdaQueryWrapper<>();
- wrapper.eq(House::getRoomType, type);
- // 上架
- wrapper.eq(House::getIsAdded, 1);
- IPage<House> page1 = houseService.page(new Page<>(page, size), wrapper);
- List<House> records = page1.getRecords();
- String houseIds = "";
- for (int i = 0; i < records.size(); i++) {
- String id = String.valueOf(records.get(i).getId());
- if (i == 0) {
- houseIds = houseIds + id;
- } else {
- houseIds = houseIds + "," + id;
- }
- }
- // 获取今天的所有的改价记录
- // LocalDateTime now = LocalDateTime.now();
- LocalDateTime now2 = LocalDateTime.parse(startTime, dateTimeFormatter1);
- LocalDateTime start = now2.withHour(0).withMinute(0).withSecond(0);
- LocalDateTime end = now2.withHour(23).withMinute(59).withSecond(59);
- List<HousePrice> housePrices = housePriceService.housePrice(start, end, houseIds);
- ArrayList<HouseAppletPageVo> houseAppletPageVos = new ArrayList<>();
- for (House record : records) {
- HouseAppletPageVo houseAppletPageVo = new HouseAppletPageVo();
- BeanUtils.copyProperties(record, houseAppletPageVo);
- // 获取设置图片
- String roomConfiguration = record.getRoomConfiguration();
- String[] split1 = roomConfiguration.split(",");
- ArrayList<FacilityServices> strings = new ArrayList<>();
- for (int i = 0; i < split1.length; i++) {
- String name = split1[i];
- LambdaQueryWrapper<FacilityServices> wrapperRC = new LambdaQueryWrapper<>();
- wrapperRC.eq(FacilityServices::getHouseService, name);
- FacilityServices one = facilityServicesService.getOne(wrapperRC);
- if (ObjectUtils.isNotEmpty(one)) {
- strings.add(one);
- }
- }
- houseAppletPageVo.setRoomConfigurationPicture(strings);
- String id = String.valueOf(record.getId());
- // 判断这个时间内是否有
- for (HousePrice housePrice : housePrices) {
- if (housePrice.getHouseId().equals(id)) {
- String setDate = housePrice.getSetDate();
- String[] split = setDate.split(",");
- Date startDate = DateUtil.parseDateOnly(split[0]);
- Date endDate = DateUtil.parseDateOnly(split[1]);
- // 判断当前时间是否在[startTime, endTime]区间
- assert startDate != null;
- boolean effectiveDate = DateUtil.isEffectiveDate(new Date(), startDate, endDate);
- if (effectiveDate) {
- BigDecimal price = housePrice.getPrice();
- houseAppletPageVo.setRoomPrice(price);
- }
- }
- }
- // 判断该房型是否还有房间
- LambdaQueryWrapper<HouseNumber> wrapperHN = new LambdaQueryWrapper<>();
- wrapperHN.eq(HouseNumber::getHouseId, id);
- List<HouseNumber> houseNumberList = houseNumberService.list(wrapperHN);
- // 获取当前房型的所有id
- String houseNumberIds = "";
- for (int i = 0; i < houseNumberList.size(); i++) {
- String houseNumber = houseNumberList.get(i).getId() + "";
- if (i == 0) {
- houseNumberIds = houseNumberIds + houseNumber;
- } else {
- houseNumberIds = houseNumberIds + "," + houseNumber;
- }
- }
- // LocalDateTime localDateTime = LocalDateTime.parse(startTime, dateTimeFormatter1);
- // LocalDateTime endLocalDateTime = LocalDateTime.parse(endTime, dateTimeFormatter1);
- List<String> houseNumberStates = houseNumberStateService.getHouseNumber(startTime, endTime, houseNumberIds);
- LambdaQueryWrapper<HouseNumber> wrapperHN2 = new LambdaQueryWrapper<>();
- wrapperHN2.eq(HouseNumber::getHouseId, id);
- wrapperHN2.eq(HouseNumber::getHouseStatus, 2);
- List<HouseNumber> list = houseNumberService.list(wrapperHN2);
- // 将房态和脏房合一起
- HashSet<String> houseNumberIdList = new HashSet<>(houseNumberStates);
- for (HouseNumber houseNumber : list) {
- Integer houseNumberId = houseNumber.getId();
- houseNumberIdList.add(houseNumberId+"");
- }
- if (houseNumberList.size() - houseNumberIdList.size() > 0) {
- houseAppletPageVo.setHouseStatus("1");
- // houseAppletPageVo.setSurplusCount(houseNumberList.size() - houseNumberStates.size() - list.size());
- houseAppletPageVo.setSurplusCount(houseNumberList.size() - houseNumberIdList.size());
- } else {
- houseAppletPageVo.setHouseStatus("2");
- houseAppletPageVo.setSurplusCount(0);
- }
- houseAppletPageVos.add(houseAppletPageVo);
- }
- IPage<HouseAppletPageVo> houseAppletPageVoPage = new Page<>();
- BeanUtils.copyProperties(page1, houseAppletPageVoPage);
- houseAppletPageVoPage.setRecords(houseAppletPageVos);
- return CommonResult.ok(houseAppletPageVoPage);
- }
- @Override
- public CommonResult getappletParticulars(Integer houseId) {
- if (ObjectUtils.isEmpty(houseId)) {
- return CommonResult.fail("参数异常");
- }
- House house = houseService.getById(houseId);
- if (ObjectUtils.isEmpty(house)) {
- return CommonResult.fail("参数异常");
- }
- JSONObject jsonObject = new JSONObject();
- jsonObject.put("housePicture", house.getHousePicture());
- jsonObject.put("introductory", house.getIntroductory());
- return CommonResult.ok(jsonObject);
- }
- @Override
- public CommonResult displayBar(Integer type) {
- List<HouseDisplayBarVo> list = houseService.displayBar(type);
- return CommonResult.ok(list);
- }
- }
|