huanghongfa
2021-07-02 ffcd3e31c9938eb256d616c80edbe1821e9fb2bf
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/EldersAuthApi.java
@@ -1,12 +1,23 @@
package com.panzhihua.applets.api;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.panzhihua.common.controller.BaseController;
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.LoginUserInfoVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.*;
import com.panzhihua.common.model.vos.elders.ComElderAuthUserAppVO;
import com.panzhihua.common.model.vos.elders.ComElderAuthUserDetailVO;
import com.panzhihua.common.model.vos.user.ComMngFamilyInfoVO;
import com.panzhihua.common.service.community.CommunityService;
import com.panzhihua.common.service.user.UserService;
import com.panzhihua.common.utlis.ClazzUtils;
import com.panzhihua.common.utlis.StringUtils;
import com.panzhihua.common.utlis.TencentUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@@ -15,8 +26,6 @@
import com.panzhihua.common.model.vos.IPageVO;
import javax.annotation.Resource;
import com.panzhihua.common.model.vos.community.EldersAuthDetailsVO;
import com.panzhihua.common.model.vos.community.EldersAuthVO;
/**
 *
@@ -32,6 +41,8 @@
    @Resource
    private CommunityService eldersAuthService;
    @Resource
    private UserService userService;
    /**
     * 分页查找
@@ -39,7 +50,7 @@
     * @return 查找结果
     */
    @PostMapping("/page")
    @ApiOperation(value = "查询高龄认证", response = EldersAuthVO.class)
    @ApiOperation(value = "查询高龄认证@已过期", response = EldersAuthVO.class)
    R query(@Validated @RequestBody PageEldersAuthDTO pageEldersAuthDTO){
        ClazzUtils.setIfStringIsEmpty(pageEldersAuthDTO);
        pageEldersAuthDTO.setSumitUserId(this.getUserId());
@@ -52,14 +63,14 @@
     * @return 查找结果
     */
    @GetMapping("/{id}")
    @ApiOperation(value = "查询高龄认证详细信息", response = EldersAuthDetailsVO.class)
    @ApiOperation(value = "查询高龄认证详细信息@已过期", response = EldersAuthDetailsVO.class)
    R<EldersAuthDetailsVO> details(@PathVariable("id") Long id){
        return eldersAuthService.eldersAuthDetails(id);
    }
    @GetMapping("/family")
    @ApiOperation(value = "我的家庭成员", response = R.class)
    @ApiOperation(value = "我的家庭成员@已过期", response = R.class)
    R<IPageVO<ComMngFamilyInfoVO>> family(){
        return eldersAuthService.getMyfamilyElders(getUserId());
    }
@@ -67,14 +78,144 @@
    /**
     * 新增高龄认证
     * @param {classNameFirstLower}AddDTO 添加高龄认证传递对象
     * @param eldersAuthAddByFamilyDTO 添加高龄认证传递对象
     * @return 新增结果
     */
    @PostMapping("/addByFamily")
    @ApiOperation(value = "通过家庭成员新增高龄认证", response = R.class)
    @ApiOperation(value = "新增高龄认证", response = R.class)
    R addByFamily(@RequestBody EldersAuthAddByFamilyDTO eldersAuthAddByFamilyDTO){
        eldersAuthAddByFamilyDTO.setSumitUserId(getUserId());
        eldersAuthAddByFamilyDTO.setUserId(getUserId());
        return eldersAuthService.addByFamilyUser(eldersAuthAddByFamilyDTO);
    }
    @GetMapping("/authtype")
    @ApiOperation(value = "查询社区认证方式", response = R.class)
    R communityAuthtype(){
        Long communityId = this.getCommunityId();
        EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO = new EldersAuthTypeQueryDTO();
        eldersAuthTypeQueryDTO.setCommunityId(communityId);
        return eldersAuthService.communityElderAuthType(eldersAuthTypeQueryDTO);
    }
    @PostMapping("/getEidToken")
    @ApiOperation(value = "高龄认证获取EidToken接口")
    public R getEidToken(@RequestParam("authUserId") Long authUserId){
        if(authUserId == null){
            return R.fail("参数错误");
        }
        R isOk = eldersAuthService.getEldersAuthUserByApp(authUserId);
        if(R.isOk(isOk)){
            ComElderAuthUserDetailVO authUserDetailVO = JSONObject.parseObject(JSONObject.toJSONString(isOk.getData()), ComElderAuthUserDetailVO.class);
            //获取EidToken接口
            String result = TencentUtils.getEidToken(authUserDetailVO.getName(),authUserDetailVO.getIdCard());
            return R.ok(result);
        }else{
            log.error("查询老人信息失败,错误信息:" + isOk.getMsg());
            return isOk;
        }
    }
    @PostMapping("/getEidResult")
    @ApiOperation(value = "高龄认证获取核验结果接口")
    public R getEidResult(@Validated @RequestBody ComEldersAuthGetResultDTO authGetResultDTO){
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        if(loginUserInfo == null){
            return R.fail("请先登录");
        }
        authGetResultDTO.setUserId(loginUserInfo.getUserId());
        String result = TencentUtils.getEidResult(authGetResultDTO.getEidToken());
        JSONObject object = JSON.parseObject(result);
        if(object == null){
            return R.fail("核验失败");
        }
        JSONObject textObject = object.getJSONObject("Text");
        String code = textObject.getString("ErrCode");
        if(!code.equals("0")){
            log.error("人脸核验失败,错误原因:" + textObject.toJSONString());
            return R.fail("核验失败");
        }
        authGetResultDTO.setVerificationResult(object.toJSONString());
        return eldersAuthService.addEldersAuthByApp(authGetResultDTO);
    }
    @PostMapping("/page/old")
    @ApiOperation(value = "高龄认证分页接口",response = ComElderAuthUserAppVO.class)
    public R pageElders(@RequestBody ComEldersAuthPageDTO authPageDTO){
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        if(loginUserInfo == null){
            return R.fail("请先登录");
        }
        authPageDTO.setUserId(loginUserInfo.getUserId());
        authPageDTO.setCommunityId(loginUserInfo.getCommunityId());
        return eldersAuthService.pageEldersByApp(authPageDTO);
    }
    @PostMapping("/add")
    @ApiOperation(value = "高龄认证添加老人接口")
    public R addElders(@RequestBody ComEldersAuthUserAddAppDTO authUserAddAppDTO){
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        if(loginUserInfo == null){
            return R.fail("请先登录");
        }
        authUserAddAppDTO.setUserId(loginUserInfo.getUserId());
        authUserAddAppDTO.setCommunityId(loginUserInfo.getCommunityId());
        return eldersAuthService.addEldersByApp(authUserAddAppDTO);
    }
    @PostMapping("/edit")
    @ApiOperation(value = "高龄认证修改老人接口")
    public R editElders(@RequestBody ComEldersAuthUserAddAppDTO authUserAddAppDTO){
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        if(loginUserInfo == null){
            return R.fail("请先登录");
        }
        authUserAddAppDTO.setUserId(loginUserInfo.getUserId());
        authUserAddAppDTO.setCommunityId(loginUserInfo.getCommunityId());
        return eldersAuthService.editEldersByApp(authUserAddAppDTO);
    }
    /**
     * 分页查找
     * @param pageComEldersRecordsDTO 查找高龄认证记录
     * @return 查找结果
     */
    @PostMapping("/records")
    @ApiOperation(value = "生存认证记录", response = EldersAuthVO.class)
    R query(@Validated @RequestBody PageComEldersRecordsDTO pageComEldersRecordsDTO){
        ClazzUtils.setIfStringIsEmpty(pageComEldersRecordsDTO);
        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
        pageComEldersRecordsDTO.setOperUserId(loginUserInfoVO.getUserId());
        pageComEldersRecordsDTO.setOperUserName(loginUserInfoVO.getNickName());
        return eldersAuthService.queryEldersRecord(pageComEldersRecordsDTO);
    }
    /**
     * 查询高龄老人库详细信息
     * @param id 高龄老人库 id
     * @return 查找结果
     */
    @GetMapping("/records/{id}")
    @ApiOperation(value = "认证详情详细信息")
    R<ComEldersAuthElderlyDetailsVO> detail(@PathVariable("id") Long id){
        return eldersAuthService.comEldersAuthElderlyDetails(id);
    }
    @GetMapping("/no/tips")
    @ApiOperation(value = "高龄认证不再显示提示")
    public R noTips(){
        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
        if(loginUserInfoVO == null){
            return R.fail("请先登录");
        }
        return userService.noTips(loginUserInfoVO.getUserId());
    }
}