From 6979b628cd4317731384484603a2aa2c671ff53a Mon Sep 17 00:00:00 2001
From: CeDo <cedoogle@gmail.com>
Date: 星期四, 10 六月 2021 11:09:25 +0800
Subject: [PATCH] add:生存认证接口首次提交

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/EldersAuthServiceImpl.java |  223 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 218 insertions(+), 5 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/EldersAuthServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/EldersAuthServiceImpl.java
index 4b7313a..b74f81c 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/EldersAuthServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/EldersAuthServiceImpl.java
@@ -1,33 +1,42 @@
 package com.panzhihua.service_community.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.exceptions.ServiceException;
 import com.panzhihua.common.model.dtos.community.*;
+import com.panzhihua.common.model.dtos.elders.ComEldersAuthGetResultDTO;
+import com.panzhihua.common.model.dtos.elders.ComEldersAuthPageDTO;
+import com.panzhihua.common.model.dtos.elders.ComEldersAuthUserAddAppDTO;
 import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.*;
 import com.panzhihua.common.model.vos.community.EldersAuthDetailsVO;
 import com.panzhihua.common.model.vos.community.EldersAuthFeedbackVO;
 import com.panzhihua.common.model.vos.community.EldersAuthVO;
+import com.panzhihua.common.model.vos.elders.ComElderAuthUserAppVO;
+import com.panzhihua.common.model.vos.user.SysUserVO;
+import com.panzhihua.common.utlis.AgeUtils;
+import com.panzhihua.common.utlis.IdCard;
+import com.panzhihua.common.utlis.StringUtils;
 import com.panzhihua.service_community.dao.*;
 import com.panzhihua.service_community.model.dos.*;
 import com.panzhihua.service_community.service.EldersAuthService;
-import io.swagger.annotations.ApiModelProperty;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.beans.BeanUtils;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
-import java.text.SimpleDateFormat;
 import java.util.ArrayList;
-import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
 
 /**
  * @auther lyq
  * @create 2021-04-14 15:03:01
- * @describe 订单表服务实现类
+ * @describe 服务实现类
  */
 @Slf4j
 @Service
@@ -35,9 +44,15 @@
 
     @Resource
     private EldersAuthDAO eldersAuthDAO;
-
     @Resource
     private EldersAuthFeedbackDAO eldersAuthFeedbackDAO;
+    @Resource
+    private ComEldersAuthUserMapper comEldersAuthUserMapper;
+    @Resource
+    private ComEldersAuthElderlyMapper comEldersAuthElderlyMapper;
+    @Resource
+    private SysConfMapper sysConfDao;
+
     /**
      * 新增高龄认证
      * @param eldersAuthAddDTO
@@ -147,4 +162,202 @@
     public String queryDomicile(String idCard) {
         return eldersAuthDAO.selectDomicile(idCard);
     }
+
+    @Override
+    public R queryEldersRecord(PageComEldersRecordsDTO pageComEldersRecordsDTO) {
+        Page page = new Page<>();
+        page.setSize(pageComEldersRecordsDTO.getPageSize());
+        page.setCurrent(pageComEldersRecordsDTO.getPageNum());
+        List<ComEldersAuthRecordVO> eldersAuthDOList = eldersAuthDAO.selectEldersRecordByPage(page, pageComEldersRecordsDTO);
+        return R.ok(eldersAuthDOList);
+    }
+
+    @Override
+    public R<ComEldersAuthElderlyDetailsVO> comEldersAuthElderlyDetails(Long id) {
+        EldersAuthDO eldersAuthDO = eldersAuthDAO.selectById(id);
+        ComEldersAuthElderlyDetailsVO comEldersAuthElderlyDetailsVO = new ComEldersAuthElderlyDetailsVO();
+        BeanUtils.copyProperties(eldersAuthDO, comEldersAuthElderlyDetailsVO);
+
+        String communityName = eldersAuthDAO.selectCommunityNameByAuth(id);
+        comEldersAuthElderlyDetailsVO.setCommunityName(communityName);
+
+        List<EldersAuthFeedbackDO> eldersAuthFeedbackDOList = eldersAuthFeedbackDAO.selectList(new LambdaQueryWrapper<EldersAuthFeedbackDO>().eq(EldersAuthFeedbackDO::getAuthId, id));
+        List<EldersAuthFeedbackVO> eldersAuthFeedbackVOList = new ArrayList<>();
+        eldersAuthFeedbackDOList.forEach(edo ->{
+            EldersAuthFeedbackVO eldersAuthFeedbackVO = new EldersAuthFeedbackVO();
+            BeanUtils.copyProperties(edo, eldersAuthFeedbackVO);
+            eldersAuthFeedbackVOList.add(eldersAuthFeedbackVO);
+        });
+        comEldersAuthElderlyDetailsVO.setFeedback(eldersAuthFeedbackVOList);
+        return R.ok(comEldersAuthElderlyDetailsVO);
+    }
+
+    @Override
+    public R<SysConfVO> communityAuthType(EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO) {
+        Long communityId = eldersAuthTypeQueryDTO.getCommunityId();
+        List<SysConfDO> confDOList =
+                sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>().eq(SysConfDO::getCommunityId, communityId)
+                        .orderByDesc(SysConfDO::getCreateAt));
+        if(confDOList==null || confDOList.size()==0){
+            SysConfDO sysConfDO = new SysConfDO();
+            sysConfDO.setCode("ELDER_AUTH_TYPE");
+            sysConfDO.setName("高龄认证类型");
+            sysConfDO.setValue(1+"");//核验类型(1.视频认证 2.人脸核验)
+            sysConfDO.setDescribe("高龄认证默认添加的核验类型");
+            sysConfDO.setCommunityId(communityId);
+            sysConfDO.setCreateBy(eldersAuthTypeQueryDTO.getUserId());
+            int inserted = sysConfDao.insert(sysConfDO);
+            if(inserted!=1){
+                throw new ServiceException("添加高龄认证默认添加的核验类型失败");
+            }
+            confDOList =
+                    sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>().eq(SysConfDO::getCommunityId, eldersAuthTypeQueryDTO.getOperUserId())
+                            .orderByDesc(SysConfDO::getCreateAt));
+        }
+        if(confDOList!=null && confDOList.size()>0){
+            SysConfDO  latest = confDOList.get(0);
+            SysConfVO sysConfVO = new SysConfVO();
+            BeanUtils.copyProperties(latest, sysConfVO);
+            return R.ok(sysConfVO);
+        }
+        return R.ok();
+    }
+
+    /**
+     * 人脸核验新增高龄认证记录
+     * @param authGetResultDTO  请求参数
+     * @return  新增结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R addAuthByEldersApp(ComEldersAuthGetResultDTO authGetResultDTO){
+        ComEldersAuthUserDO authUserDO = comEldersAuthUserMapper.selectById(authGetResultDTO.getAuthUserId());
+        if(authUserDO != null){
+            EldersAuthDO eldersAuthDO = new EldersAuthDO();
+            eldersAuthDO.setIdCard(authUserDO.getIdCard());
+            eldersAuthDO.setAuthUserName(authUserDO.getName());
+            eldersAuthDO.setCreateBy(authGetResultDTO.getUserId());
+            eldersAuthDO.setCreateAt(new Date());
+            eldersAuthDO.setSumitUserId(authGetResultDTO.getUserId());
+            eldersAuthDO.setDomicile(this.baseMapper.selectDomicile(authUserDO.getIdCard()));
+            eldersAuthDO.setBirthDay(IdCard.birthDay(authUserDO.getIdCard()));
+            eldersAuthDO.setFamilyUserId(authUserDO.getId());
+            eldersAuthDO.setType(2);
+            eldersAuthDO.setVerificationResult(authGetResultDTO.getVerificationResult());
+
+            this.baseMapper.insert(eldersAuthDO);
+
+            authUserDO.setIsAuth(ComEldersAuthUserDO.isAuth.yes);
+            comEldersAuthUserMapper.updateById(authUserDO);
+
+            return R.ok();
+        }
+        log.error("人脸核验新增认证记录失败,错误原因:未查询到老人记录,老人id:" + authGetResultDTO.getAuthUserId());
+        return R.fail();
+    }
+
+    /**
+     * 高龄认证分页接口
+     * @param authPageDTO   请求参数
+     * @return  查询结果
+     */
+    @Override
+    public R pageEldersByApp(ComEldersAuthPageDTO authPageDTO){
+        //判断当前用户是否是高龄老人,如果是则将这个人新增到高龄老人的列表里
+        SysUserVO userVO = this.eldersAuthDAO.getSysUserByUserId(authPageDTO.getUserId());
+        if(userVO != null){
+            //查询老人库是否存在当前用户信息
+            ComEldersAuthElderlyDO authElderlyDO = comEldersAuthElderlyMapper.selectOne(new QueryWrapper<ComEldersAuthElderlyDO>().lambda()
+                    .eq(ComEldersAuthElderlyDO::getIdCard,userVO.getIdCard()));
+
+            if(authElderlyDO != null){
+                ComEldersAuthUserDO authUserDO = new ComEldersAuthUserDO();
+                authUserDO.setUserId(userVO.getUserId());
+                authUserDO.setRelation(ComEldersAuthUserDO.relation.br);
+                authUserDO.setName(userVO.getName());
+                authUserDO.setIdCard(userVO.getIdCard());
+                authUserDO.setCommunityId(authElderlyDO.getCommunityId());
+                authUserDO.setBigAgeId(authElderlyDO.getId());
+                comEldersAuthUserMapper.insert(authUserDO);
+            }
+        }
+
+        IPage<ComElderAuthUserAppVO> authUserAppVOIPage = comEldersAuthUserMapper.findByPage(new Page(authPageDTO.getPageNum(),authPageDTO.getPageSize()));
+        if(!authUserAppVOIPage.getRecords().isEmpty()){
+            authUserAppVOIPage.getRecords().forEach(authUser -> {
+
+                if(authUser.getIsAuth().equals(ComEldersAuthUserDO.isAuth.yes)){
+                    List<EldersAuthDO> authDOS = eldersAuthDAO.selectList(new QueryWrapper<EldersAuthDO>().lambda()
+                            .eq(EldersAuthDO::getSumitUserId,authPageDTO.getUserId()).orderByDesc(EldersAuthDO::getCreateAt));
+                    if(!authDOS.isEmpty()){
+                        EldersAuthDO authDO = authDOS.get(0);
+                        if(authDO.getType().equals(1)){//视频认证
+                            Integer count = eldersAuthFeedbackDAO.selectCount(new QueryWrapper<EldersAuthFeedbackDO>().lambda()
+                                    .eq(EldersAuthFeedbackDO::getAuthId,authDO.getId()));
+                            if(count > 0){
+                                authUser.setIsFeedback(1);
+                            }
+                        }
+                    }
+                }
+                authUser.setAge(AgeUtils.getAgeFromBirthTimes(IdCard.birthDay(authUser.getIdCard()).getTime()));
+            });
+        }
+        return R.ok(authUserAppVOIPage);
+    }
+
+    /**
+     * 添加高龄老人接口
+     * @param authUserAddAppDTO 请求参数
+     * @return  添加结果
+     */
+    @Override
+    public R addEldersByApp(ComEldersAuthUserAddAppDTO authUserAddAppDTO){
+
+        ComEldersAuthUserDO authUserDO = comEldersAuthUserMapper.selectOne(new QueryWrapper<ComEldersAuthUserDO>().lambda()
+                .eq(ComEldersAuthUserDO::getIdCard,authUserAddAppDTO.getIdCard()));
+        if(authUserDO != null){
+            return R.fail("当前老人已存在");
+        }
+
+        ComEldersAuthElderlyDO authElderlyDO = comEldersAuthElderlyMapper.selectOne(new QueryWrapper<ComEldersAuthElderlyDO>().lambda()
+                .eq(ComEldersAuthElderlyDO::getIdCard,authUserAddAppDTO.getIdCard()));
+        if(authElderlyDO == null){
+            return R.fail("未在系统找到相符的高龄老人!请检查信息是否正确,或联系社区工作人员");
+        }
+
+        authUserDO = new ComEldersAuthUserDO();
+        BeanUtils.copyProperties(authUserAddAppDTO,authUserDO);
+        authUserDO.setBigAgeId(authElderlyDO.getId());
+        authUserDO.setName(authElderlyDO.getName());
+        if(comEldersAuthUserMapper.insert(authUserDO) > 0){
+            return R.ok();
+        }
+
+        return R.fail("添加失败");
+    }
+
+    /**
+     * 修改高龄老人接口
+     * @param authUserAddAppDTO 请求参数
+     * @return  修改结果
+     */
+    @Override
+    public R editEldersByApp(ComEldersAuthUserAddAppDTO authUserAddAppDTO){
+
+        ComEldersAuthUserDO authUserDO = comEldersAuthUserMapper.selectById(authUserAddAppDTO.getElderId());
+        if(authUserDO == null){
+            return R.fail("未查询到老人信息");
+        }
+        if(StringUtils.isNotEmpty(authUserAddAppDTO.getName())){
+            authUserDO.setName(authUserAddAppDTO.getName());
+        }
+        if(authUserAddAppDTO.getRelation() != null){
+            authUserDO.setRelation(authUserAddAppDTO.getRelation());
+        }
+        if(comEldersAuthUserMapper.updateById(authUserDO) > 0){
+            return R.ok();
+        }
+        return R.fail();
+    }
 }

--
Gitblit v1.7.1