package com.panzhihua.applets.api; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.panzhihua.common.controller.BaseController; import com.panzhihua.common.model.dtos.community.EldersAuthAddByFamilyDTO; import com.panzhihua.common.model.dtos.community.EldersAuthTypeQueryDTO; import com.panzhihua.common.model.dtos.community.PageComEldersRecordsDTO; import com.panzhihua.common.model.dtos.community.PageEldersAuthDTO; 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.IPageVO; import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.ComEldersAuthElderlyDetailsVO; import com.panzhihua.common.model.vos.community.EldersAuthDetailsVO; import com.panzhihua.common.model.vos.community.EldersAuthVO; 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.TencentUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; /** * * @author cedoo email:cedoo(a)qq.com * @version 1.0 * @since 1.0 */ @Slf4j @RestController @RequestMapping("/eldersauth") @Api(tags = {"高龄认证"}) public class EldersAuthApi extends BaseController { @Resource private CommunityService eldersAuthService; @Resource private UserService userService; /** * 分页查找 * * @param pageEldersAuthDTO * 查找高龄认证传递对象 * @return 查找结果 */ @PostMapping("/page") @ApiOperation(value = "查询高龄认证@已过期", response = EldersAuthVO.class) R query(@Validated @RequestBody PageEldersAuthDTO pageEldersAuthDTO) { ClazzUtils.setIfStringIsEmpty(pageEldersAuthDTO); pageEldersAuthDTO.setSumitUserId(this.getUserId()); return eldersAuthService.query(pageEldersAuthDTO); } /** * 查询高龄认证详细信息 * * @param id * 高龄认证 id * @return 查找结果 */ @GetMapping("/{id}") @ApiOperation(value = "查询高龄认证详细信息@已过期", response = EldersAuthDetailsVO.class) R details(@PathVariable("id") Long id) { return eldersAuthService.eldersAuthDetails(id); } @GetMapping("/family") @ApiOperation(value = "我的家庭成员@已过期", response = R.class) R> family() { return eldersAuthService.getMyfamilyElders(getUserId()); } /** * 新增高龄认证 * * @param eldersAuthAddByFamilyDTO * 添加高龄认证传递对象 * @return 新增结果 */ @PostMapping("/addByFamily") @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 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()); } }