package com.panzhihua.service_community.service.impl; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Objects; import javax.annotation.Resource; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.exceptions.ServiceException; import com.panzhihua.common.model.dtos.community.EldersAuthElderlyDTO; import com.panzhihua.common.model.dtos.community.PageComEldersAuthElderlyDTO; import com.panzhihua.common.model.dtos.community.PageEldersAuthElderlyDTO; import com.panzhihua.common.model.helper.AESUtil; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.ComEldersAuthElderlyVO; import com.panzhihua.common.model.vos.community.EldersAuthElderlyExcelVO; import com.panzhihua.service_community.dao.ComEldersAuthElderlyMapper; import com.panzhihua.service_community.model.dos.ComEldersAuthElderlyDO; import com.panzhihua.service_community.service.ComEldersAuthElderlyService; import com.panzhihua.service_community.service.EldersAuthService; import lombok.extern.slf4j.Slf4j; /** * 高龄老人库 serviceImpl * * @author cedoo email:cedoo(a)qq.com * @version 1.0 * @since 1.0 * @date 2021-06-09 */ @Slf4j @Service public class ComEldersAuthElderlyServiceImpl extends ServiceImpl implements ComEldersAuthElderlyService { @Resource private ComEldersAuthElderlyMapper comEldersAuthElderlyMapper; @Value("${domain.aesKey:}") private String aesKey; @Resource private EldersAuthService eldersAuthService; @Override public R pageQueryEldersAuthElderly(PageEldersAuthElderlyDTO pageEldersAuthElderlyDTO) { PageComEldersAuthElderlyDTO pageComEldersAuthElderlyDTO = new PageComEldersAuthElderlyDTO(); BeanUtils.copyProperties(pageEldersAuthElderlyDTO, pageComEldersAuthElderlyDTO); IPage page = comEldersAuthElderlyMapper.findByPage( new Page(pageEldersAuthElderlyDTO.getPageNum(), pageEldersAuthElderlyDTO.getPageSize()), pageComEldersAuthElderlyDTO); return R.ok(page); } @Override @Transactional(rollbackFor = Exception.class) public R batchSave(List list, Long communityId, Long createBy) { List listNewDO = new ArrayList<>(); List listUpdateDO = new ArrayList<>(); list.forEach(e -> { String idCardProto = e.getIdCard(); if (idCardProto != null && idCardProto.contains("x")) { idCardProto = idCardProto.replaceAll("x", "X"); } String idCardEncrypted = idCardProto; try { idCardEncrypted = AESUtil.encrypt128(idCardEncrypted, aesKey); } catch (Exception exp) { exp.printStackTrace(); } List comEldersAuthElderlyDOList = comEldersAuthElderlyMapper.selectList( new LambdaQueryWrapper().eq(ComEldersAuthElderlyDO::getIdCard, idCardEncrypted) .orderByDesc(ComEldersAuthElderlyDO::getCreateAt)); if (comEldersAuthElderlyDOList != null && comEldersAuthElderlyDOList.size() > 0) { ComEldersAuthElderlyDO lastestOne = comEldersAuthElderlyDOList.get(0); lastestOne.setName(e.getName()); lastestOne.setCommunityId(communityId); lastestOne.setUpdateBy(createBy); lastestOne.setIdCard(null); lastestOne.setDomicile(eldersAuthService.queryDomicile(e.getIdCard())); lastestOne.setIsExist(Objects.equals("是", e.getIsExist()) ? 1 : 2); lastestOne.setIsBigAge(Objects.equals("是", e.getIsBigAge()) ? 1 : 2); lastestOne.setUpdateAt(new Date()); listUpdateDO.add(lastestOne); } else { ComEldersAuthElderlyDO comEldersAuthElderlyDO = new ComEldersAuthElderlyDO(); comEldersAuthElderlyDO.setName(e.getName()); comEldersAuthElderlyDO.setIdCard(e.getIdCard()); comEldersAuthElderlyDO.setCommunityId(communityId); comEldersAuthElderlyDO.setCreateBy(createBy); comEldersAuthElderlyDO.setDomicile(eldersAuthService.queryDomicile(e.getIdCard())); comEldersAuthElderlyDO.setIsExist(Objects.equals("是", e.getIsExist()) ? 1 : 2); comEldersAuthElderlyDO.setIsBigAge(Objects.equals("是", e.getIsBigAge()) ? 1 : 2); comEldersAuthElderlyDO.setBirthday(e.getBirthday()); comEldersAuthElderlyDO.setLevel(e.getLevel()); listNewDO.add(comEldersAuthElderlyDO); } }); boolean noImport = (listNewDO == null || listNewDO.size() == 0) && (listUpdateDO == null || listUpdateDO.size() == 0); if (noImport) { throw new ServiceException("未发现高龄老人数据"); } if (listNewDO != null && listNewDO.size() > 0) { boolean batchAdd = this.saveBatch(listNewDO); if (!batchAdd) { throw new ServiceException("批量插入失败"); } } if (listUpdateDO != null && listUpdateDO.size() > 0) { boolean batchUpdate = this.updateBatchById(listUpdateDO); if (!batchUpdate) { throw new ServiceException("批量更新失败"); } } return R.ok("共计导入高龄老人数量:" + list.size()); } @Override public R getEldersAuthElderlyById(Long id) { ComEldersAuthElderlyDO comEldersAuthElderlyDO = this.baseMapper.selectById(id); if (comEldersAuthElderlyDO == null) { return R.fail("记录不存在"); } ComEldersAuthElderlyVO comEldersAuthElderlyVO = new ComEldersAuthElderlyVO(); BeanUtils.copyProperties(comEldersAuthElderlyDO, comEldersAuthElderlyVO); return R.ok(comEldersAuthElderlyVO); } @Override public R updateEldersAuthElderly(EldersAuthElderlyDTO eldersAuthElderlyDTO) { ComEldersAuthElderlyDO comEldersAuthElderlyDO = this.baseMapper.selectById(eldersAuthElderlyDTO.getId()); if(comEldersAuthElderlyDO == null){ return R.fail("未查询到该老人信息"); } if (!ObjectUtils.isEmpty(eldersAuthElderlyDTO.getName())) { comEldersAuthElderlyDO.setName(eldersAuthElderlyDTO.getName()); } comEldersAuthElderlyDO.setIsExist(eldersAuthElderlyDTO.getIsExist()); comEldersAuthElderlyDO.setIsBigAge(eldersAuthElderlyDTO.getIsBigAge()); comEldersAuthElderlyDO.setIdCard(eldersAuthElderlyDTO.getIdCard()); // if (!ObjectUtils.isEmpty(eldersAuthElderlyDTO.getIdCard())) { // try { // String idCard = AESUtil.encrypt128(eldersAuthElderlyDTO.getIdCard(), aesKey); // comEldersAuthElderlyDO.setIdCard(idCard); // } catch (Exception exp) { // log.error("身份证转义失败"); // } // } baseMapper.updateEldersAuthElderly(comEldersAuthElderlyDO); return R.ok(); } @Override public R deleteEldersAuthElderly(Long id) { if (this.baseMapper.deleteById(id) > 0) { // 删除用户关联的老人信息 this.baseMapper.deleteEldersAuthUserById(id); return R.ok(); } return R.fail(); } }