package com.panzhihua.service_community.service.impl; import java.util.*; import javax.annotation.Resource; import com.panzhihua.common.utlis.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.util.ObjectUtils; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.panzhihua.common.model.dtos.community.ComMngCarAppletDTO; import com.panzhihua.common.model.dtos.community.ComMngCarSaveDTO; import com.panzhihua.common.model.dtos.community.ExportComMngCarExcelDTO; import com.panzhihua.common.model.dtos.community.PageComMngCarDTO; import com.panzhihua.common.model.helper.AESUtil; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.ComMngCarExcelVO; import com.panzhihua.common.model.vos.community.ComMngCarVO; import com.panzhihua.common.model.vos.user.SysUserVO; import com.panzhihua.common.service.user.UserService; import com.panzhihua.common.utlis.ParamRegularUtil; import com.panzhihua.service_community.dao.ComMngCarDAO; import com.panzhihua.service_community.dao.ComMngStructAreaDAO; import com.panzhihua.service_community.dao.ComMngVillageDAO; import com.panzhihua.service_community.model.dos.ComMngCarDO; import com.panzhihua.service_community.model.dos.ComMngStructAreaDO; import com.panzhihua.service_community.model.dos.ComMngVillageDO; import com.panzhihua.service_community.service.ComMngCarService; /** * @description: * @author: Null * @date: 2021/3/16 14:33 */ @Service public class ComMngCarServiceImpl extends ServiceImpl implements ComMngCarService { @Resource private ComMngCarDAO comMngCarDAO; @Resource private ComMngStructAreaDAO comMngStructAreaDAO; @Resource private ComMngVillageDAO comMngVillageDAO; @Resource private UserService userService; @Value("${domain.aesKey:}") private String aesKey; @Override public R addComMngCarApplet(ComMngCarAppletDTO comCvtBusinessDTO) { int count = comMngCarDAO.selectCount( new QueryWrapper().lambda().eq(ComMngCarDO::getPlateNum, comCvtBusinessDTO.getPlateNum()) .and(wrapper -> wrapper.eq(ComMngCarDO::getSource, 1))); if (count > 0) { return R.ok("车辆已存在"); } ComMngCarDO comMngCarDO = new ComMngCarDO(); BeanUtils.copyProperties(comCvtBusinessDTO, comMngCarDO); comMngCarDO.setCreateAt(new Date()); boolean insert = this.save(comMngCarDO); if (insert) { return R.ok(); } return R.fail(); } @Override public R userComMngCarList(Long userId) { List comMngCarVOS = new ArrayList<>(); List carDOS = comMngCarDAO.selectList(new QueryWrapper().lambda().eq(ComMngCarDO::getUserId, userId)); carDOS.forEach(carDO -> { ComMngCarVO carVO = new ComMngCarVO(); BeanUtils.copyProperties(carDO, carVO); comMngCarVOS.add(carVO); }); return R.ok(comMngCarVOS); } @Override public R pageQueryComMngCar(PageComMngCarDTO pageComMngCarDTO) { Page page = new Page<>(); Long pageNum = pageComMngCarDTO.getPageNum(); Long pageSize = pageComMngCarDTO.getPageSize(); if (null == pageNum || 0 == pageNum) { pageNum = 1l; } if (null == pageSize || 0 == pageSize) { pageSize = 10l; } page.setSize(pageSize); page.setCurrent(pageNum.longValue()); IPage iPage = comMngCarDAO.pageQueryComMngCar(page, pageComMngCarDTO); return R.ok(iPage); } @Override public R saveComMngCar(ComMngCarSaveDTO comMngCarSaveDTO) { boolean carResult = ParamRegularUtil.carNumRegular(comMngCarSaveDTO.getPlateNum()); if (!carResult) { return R.fail("车牌号有误!"); } if (comMngCarSaveDTO.getId() == null) { List existList = comMngCarDAO.selectList( new QueryWrapper().lambda().eq(ComMngCarDO::getPlateNum, comMngCarSaveDTO.getPlateNum())); if (!existList.isEmpty()) { return R.fail("车辆已存在"); } } ComMngVillageDO comMngVillageDO = comMngVillageDAO.selectById(comMngCarSaveDTO.getAreaId()); if (ObjectUtils.isEmpty(comMngVillageDO)) { return R.fail("小区不存在"); } if (ObjectUtils.isEmpty(comMngCarSaveDTO.getMobile())) { return R.fail("车主手机号码不能为空"); } if (ObjectUtils.isEmpty(comMngCarSaveDTO.getCardNo())) { return R.fail("车主身份证号码不能为空"); } ComMngCarDO comMngCarDO = new ComMngCarDO(); BeanUtils.copyProperties(comMngCarSaveDTO, comMngCarDO); //如果小区没有名字,则将街路巷和地区号拼接起来 if(comMngVillageDO.getName() != null && StringUtils.isNotEmpty(comMngVillageDO.getName())){ comMngCarDO.setAreaName(comMngVillageDO.getName()); }else{ StringBuilder sb = new StringBuilder(); sb.append(comMngVillageDO.getAlley()); if(!comMngVillageDO.getHouseNum().contains("号")){ sb.append(comMngVillageDO.getHouseNum() + "号"); } comMngCarDO.setAreaName(sb.toString()); } // if(comMngVillageDO.getGroupAt() == null){ // comMngCarDO.setAreaName(comMngVillageDO.getGroupAt()); // } comMngCarDO.setCommunityId(comMngVillageDO.getCommunityId()); try { comMngCarDO.setCardNo(AESUtil.encrypt128(comMngCarSaveDTO.getCardNo(), aesKey)); } catch (Exception e) { } comMngCarDO.setCreateAt(new Date()); comMngCarDO.setSource(2); R sysUserVOR = userService.getSysUserVOByPhone(comMngCarSaveDTO.getMobile()); if (R.isOk(sysUserVOR)) { SysUserVO sysUserVO = JSONObject.parseObject(JSONObject.toJSONString(sysUserVOR.getData()), SysUserVO.class); comMngCarSaveDTO.setUserId(sysUserVO.getUserId()); } if (null != comMngCarDO.getId() && comMngCarDO.getId() != 0) { boolean update = this.updateById(comMngCarDO); if (update) { return R.ok(); } } else { boolean insert = this.save(comMngCarDO); if (insert) { return R.ok(); } } return R.fail(); } @Override public R deleteComMngCar(Long id) { int delete = comMngCarDAO.deleteById(id); if (delete == 0) { return R.fail("车辆信息不存在"); } return R.ok(); } @Override public R listSaveMngCarExcelVO(List list, Long communityId) { // 获取社区下所有的小区 List comMngVillageDOS = comMngVillageDAO.selectList( new QueryWrapper().lambda().eq(ComMngVillageDO::getCommunityId, communityId)); Map areaMap = new HashMap<>(comMngVillageDOS.size()); comMngVillageDOS.forEach(comMngVillageDO -> { areaMap.put(comMngVillageDO.getName(),comMngVillageDO); }); List comMngCarDOS = new ArrayList<>(); list.forEach(vo -> { int count = comMngCarDAO.selectCount(new QueryWrapper().lambda() .eq(ComMngCarDO::getPlateNum, vo.getPlateNum()).and(wrapper -> wrapper.eq(ComMngCarDO::getSource, 2))); ComMngCarDO comMngCarDO = new ComMngCarDO(); BeanUtils.copyProperties(vo, comMngCarDO); if (count == 0 ) { if(StringUtils.isNotEmpty(vo.getAreaName())&&areaMap.containsKey(vo.getAreaName())){ comMngCarDO.setAreaId(areaMap.get(vo.getAreaName()).getVillageId()); } try { comMngCarDO.setCardNo(AESUtil.encrypt128(vo.getCardNo(), aesKey)); } catch (Exception e) { } comMngCarDO.setCommunityId(communityId); R sysUserVOR = userService.getSysUserVOByPhone(vo.getMobile()); if (R.isOk(sysUserVOR)) { SysUserVO sysUserVO = JSONObject.parseObject(JSONObject.toJSONString(sysUserVOR.getData()), SysUserVO.class); comMngCarDO.setUserId(sysUserVO.getUserId()); } comMngCarDO.setSource(2); comMngCarDOS.add(comMngCarDO); } }); if(comMngCarDOS.isEmpty()){ return R.fail("导入数据有误"); } else { this.saveBatch(comMngCarDOS); return R.ok("共计导入车辆数量:" + comMngCarDOS.size()); } } @Override public R exportRealCar(ExportComMngCarExcelDTO exportComMngCarExcelDTO) { List list = comMngCarDAO.exportRealCar(exportComMngCarExcelDTO); return R.ok(list); } }