| | |
| | | package com.panzhihua.service_community.api; |
| | | |
| | | import cn.hutool.core.util.IdcardUtil; |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | 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.panzhihua.common.exceptions.ServiceException; |
| | | import com.panzhihua.common.model.dtos.community.*; |
| | |
| | | import com.panzhihua.common.model.vos.community.questnaire.EditComActQuestnaireVo; |
| | | import com.panzhihua.common.model.vos.community.questnaire.QuestnaireVO; |
| | | import com.panzhihua.common.model.vos.community.questnaire.UsersAnswerQuestnaireVO; |
| | | import com.panzhihua.common.model.vos.user.ComMngFamilyInfoVO; |
| | | import com.panzhihua.common.model.vos.user.SysUserNoticeVO; |
| | | import com.panzhihua.common.model.vos.user.UserPhoneVO; |
| | | import com.panzhihua.service_community.model.dos.ComActActPrizeDO; |
| | | import com.panzhihua.service_community.model.dos.ComActDynDO; |
| | | import com.panzhihua.service_community.model.dos.ComActMicroWishDO; |
| | | import com.panzhihua.service_community.model.dos.ComMngStructAreaDO; |
| | | import com.panzhihua.common.service.user.UserService; |
| | | import com.panzhihua.common.utlis.*; |
| | | import com.panzhihua.service_community.dao.ComActActSignDAO; |
| | | import com.panzhihua.service_community.dao.ComEldersAuthHistoryRecordMapper; |
| | | import com.panzhihua.service_community.dao.ComMngPopulationDAO; |
| | | import com.panzhihua.service_community.model.dos.*; |
| | | import com.panzhihua.service_community.service.*; |
| | | |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.util.ObjectUtils; |
| | | import org.springframework.util.StringUtils; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.ArrayList; |
| | | import java.util.Comparator; |
| | | import java.util.List; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | |
| | | private ComActMessageService comActMessageService; |
| | | @Resource |
| | | private ComActQuestnaireService comActQuestnaireService; |
| | | @Resource |
| | | private UserService userService; |
| | | @Resource |
| | | private EldersAuthService eldersAuthService; |
| | | @Resource |
| | | public ComMngPopulationDAO comMngPopulationDAO; |
| | | @Resource |
| | | private ComActActSignDAO comActActSignDAO; |
| | | @Resource |
| | | public ComEldersAuthUserService comEldersAuthUserService; |
| | | @Resource |
| | | private ComEldersAuthHistoryRecordMapper comEldersAuthHistoryRecordMapper; |
| | | @Resource |
| | | private ComActEasyPhotoActivityService comActEasyPhotoActivityService; |
| | | |
| | | /** |
| | | * 新增社区活动 |
| | |
| | | * @return 详情 |
| | | */ |
| | | @PostMapping("detailactivity") |
| | | public R detailActivity(@RequestParam("id") Long id, @RequestParam("userId") Long userId) { |
| | | public R detailActivity(@RequestParam("id") Long id, @RequestParam(value = "userId",required = false) Long userId) { |
| | | ComActActivityVO comActActivityVO = comActActivityService.inforActivity(id, userId); |
| | | if (ObjectUtils.isEmpty(comActActivityVO)) { |
| | | return R.fail("活动不存在"); |
| | |
| | | } |
| | | ActivitySignVO activitySignVO = new ActivitySignVO(); |
| | | activitySignVO.setActivityId(id); |
| | | R r = comActActivityService.listActivitySign(activitySignVO); |
| | | R r = comActActivityService.listActivitySigns(activitySignVO); |
| | | if (R.isOk(r)) { |
| | | List<ActivitySignVO> activitySignVOS = JSONArray.parseArray(JSONArray.toJSONString( r.getData()),ActivitySignVO.class); |
| | | if (!ObjectUtils.isEmpty(activitySignVOS)) { |
| | | for (ActivitySignVO signVO:activitySignVOS) { |
| | | if(StringUtils.isEmpty(signVO.getName())){ |
| | | signVO.setName(signVO.getNickName()); |
| | | } |
| | | } |
| | | List<ActivitySignVO> collect = activitySignVOS.stream().filter(activitySignVO1 -> activitySignVO1.getIsVolunteer() == 1).collect(Collectors.toList()); |
| | | if (!ObjectUtils.isEmpty(collect)) { |
| | | int size = collect.size(); |
| | |
| | | } |
| | | |
| | | /** |
| | | * 活动报名名单 |
| | | * 分页活动报名名单 |
| | | * |
| | | * @param activitySignVO 查询参数 |
| | | * @return 报名人员集合 |
| | |
| | | @PostMapping("listactivitysign") |
| | | public R listActivitySign(@RequestBody ActivitySignVO activitySignVO) { |
| | | return comActActivityService.listActivitySign(activitySignVO); |
| | | } |
| | | |
| | | /** |
| | | * 活动报名名单 |
| | | * |
| | | * @param activitySignVO 查询参数 |
| | | * @return 报名人员集合 |
| | | */ |
| | | @PostMapping("listactivitysigns") |
| | | public R listActivitySigns(@RequestBody ActivitySignVO activitySignVO) { |
| | | return comActActivityService.listActivitySigns(activitySignVO); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @PostMapping("putdynamic") |
| | | public R putDynamic(@RequestBody ComActDynVO comActDynVO) { |
| | | ComActDynDO comActDynDO = new ComActDynDO(); |
| | | Long id = comActDynVO.getId(); |
| | | BeanUtils.copyProperties(comActDynVO, comActDynDO); |
| | | ComActDynDO comActDynDO = comActDynService.getById(comActDynVO.getId()); |
| | | if(comActDynDO == null){ |
| | | return R.fail("未查到社区动态记录"); |
| | | } |
| | | // Long id = comActDynVO.getId(); |
| | | Integer isTopping = comActDynVO.getIsTopping(); |
| | | boolean b = isTopping.intValue() == 1; |
| | | boolean b = isTopping.equals(1); |
| | | if(b){ |
| | | ComActDynDO comActDynDO1 = comActDynService.getById(id); |
| | | Integer status = comActDynDO1.getStatus(); |
| | | if (status.intValue()==0) { |
| | | return R.fail("该动态还未发布"); |
| | | Integer status = comActDynDO.getStatus(); |
| | | if (status.equals(0)) { |
| | | return R.fail("待发布的社区动态不可置顶"); |
| | | } |
| | | } |
| | | |
| | | // if(StringUtils.isEmpty(comActDynVO.getCover())){ |
| | | // comActDynVO.setCover(comActDynDO.getCover()); |
| | | // } |
| | | BeanUtils.copyProperties(comActDynVO, comActDynDO); |
| | | |
| | | boolean update = comActDynService.updateById(comActDynDO); |
| | | if (update) { |
| | | // 最多只能设置三条置顶状态,后边设置会取消先前设置的置顶 |
| | |
| | | } |
| | | |
| | | /** |
| | | * 随手拍删除 |
| | | * |
| | | * @param id 随手拍主键 |
| | | * @param userId 登录用户 |
| | | * @return 详情内容 |
| | | */ |
| | | @PostMapping("deleteEasyPhoto") |
| | | public R deleteEasyPhoto(@RequestParam("id") Long id, @RequestParam("userId") Long userId) { |
| | | ComActEasyPhotoDO comActEasyPhotoDO = comActEasyPhotoService.getBaseMapper().selectById(id); |
| | | if(comActEasyPhotoDO==null){ |
| | | return R.fail("随手拍不存在"); |
| | | } |
| | | comActEasyPhotoDO.setDelTag(1); |
| | | int updateById = comActEasyPhotoService.getBaseMapper().updateById(comActEasyPhotoDO); |
| | | if(updateById==1){ |
| | | return R.ok(); |
| | | } |
| | | return R.fail(); |
| | | } |
| | | /** |
| | | * 分页查询微心愿 |
| | | * |
| | | * @param comActMicroWishVO 查询参数 |
| | |
| | | @PostMapping("addeasyphoto") |
| | | public R addEasyPhoto(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO) { |
| | | return comActEasyPhotoService.addEasyPhoto(comActEasyPhotoVO); |
| | | } |
| | | |
| | | /** |
| | | * 查询随手拍是否有活动 |
| | | * @return 活动详情 |
| | | */ |
| | | @PostMapping("getEasyPhotoActivity") |
| | | public R getEasyPhotoActivity(@RequestParam("communityId") Long communityId) { |
| | | return comActEasyPhotoActivityService.getEasyPhotoActivity(communityId); |
| | | } |
| | | |
| | | /** |
| | |
| | | } |
| | | |
| | | /** |
| | | * 定时任务刷新微心愿的状态 |
| | | * @return 更新结果 |
| | | */ |
| | | @PostMapping("timedtaskactmicrowish") |
| | | R timedTaskActMicroWishAll(){ |
| | | return comActMicroWishService.timedTaskActMicroWishAll(); |
| | | } |
| | | |
| | | /** |
| | | * 其他建筑详情 |
| | | * @param id 主键id |
| | | * @return 建筑内容 |
| | |
| | | public R deletemicrowish(@RequestParam("id") Long id){ |
| | | return comActMicroWishService.deleteMicroWish(id); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 新增高龄认证 |
| | | * @param eldersAuthAddDTO |
| | | * @return 新增结果 |
| | | */ |
| | | @PostMapping("/eldersauth/add") |
| | | R add(@RequestBody EldersAuthAddDTO eldersAuthAddDTO){ |
| | | return eldersAuthService.add(eldersAuthAddDTO); |
| | | }; |
| | | |
| | | /** |
| | | * 修改高龄认证 |
| | | * @param eldersAuthEditDTO |
| | | * @return 维护结果 |
| | | */ |
| | | @PostMapping("/eldersauth/edit") |
| | | R edit(@RequestBody EldersAuthEditDTO eldersAuthEditDTO){ |
| | | return eldersAuthService.edit(eldersAuthEditDTO); |
| | | }; |
| | | |
| | | /** |
| | | * 分页查找高龄认证 |
| | | * @param pageEldersAuthDTO |
| | | * @return 维护结果 |
| | | */ |
| | | @PostMapping("/eldersauth/page") |
| | | R<IPage<EldersAuthVO>> query(@RequestBody PageEldersAuthDTO pageEldersAuthDTO){ |
| | | return eldersAuthService.query(pageEldersAuthDTO); |
| | | }; |
| | | |
| | | /** |
| | | * 删除高龄认证 |
| | | * @param EldersAuthDeleteDTO |
| | | * @return 平台用户信息 |
| | | */ |
| | | @PostMapping("/eldersauth/delete") |
| | | R delete(@RequestBody EldersAuthDeleteDTO EldersAuthDeleteDTO){ |
| | | return eldersAuthService.delete(EldersAuthDeleteDTO); |
| | | }; |
| | | |
| | | /** |
| | | * 查询高龄认证详细信息 |
| | | * @param id 高龄认证 id |
| | | * @return 查找结果 |
| | | */ |
| | | @PostMapping("/eldersauth/{id}") |
| | | R<EldersAuthDetailsVO> eldersAuthDetails(@PathVariable("id") Long id){ |
| | | return eldersAuthService.eldersAuthDetails(id); |
| | | }; |
| | | |
| | | @PostMapping("/eldersauth/getMyfamilyElders/{userId}") |
| | | R<List<ComMngFamilyInfoVO>> getMyfamilyElders(@PathVariable("userId") Long userId){ |
| | | List<ComMngFamilyInfoVO> list = comMngPopulationDAO.listFamilyByUserId(userId); |
| | | |
| | | List<ComMngFamilyInfoVO> listRt = new ArrayList<>(); |
| | | list.forEach(rt -> { |
| | | int age = IdCard.IdNOToAge(rt.getIdCard()); |
| | | boolean isElders = age >= 80; |
| | | if (isElders) { |
| | | listRt.add(rt); |
| | | } |
| | | }); |
| | | return R.ok(listRt); |
| | | } |
| | | |
| | | @PostMapping("/eldersauth/addByFamilyUser") |
| | | @Transactional(rollbackFor = Exception.class) |
| | | R addByFamilyUser(@RequestBody EldersAuthAddByFamilyDTO eldersAuthAddByFamilyDTO){ |
| | | |
| | | ComEldersAuthUserDO authUserDO = comEldersAuthUserService.getById(eldersAuthAddByFamilyDTO.getFamilyUserId()); |
| | | if(authUserDO == null){ |
| | | return R.fail("未查询到老人信息"); |
| | | } |
| | | |
| | | Long elderId = authUserDO.getId(); |
| | | boolean canReAuthThisMonth = comEldersAuthUserService.checkReAuthAgain(elderId); |
| | | if(!canReAuthThisMonth){ |
| | | return R.fail("当月已认证,不能再次进行认证"); |
| | | } |
| | | |
| | | String idCard = authUserDO.getIdCard(); |
| | | |
| | | Long loginUserId = eldersAuthAddByFamilyDTO.getUserId(); |
| | | EldersAuthDO eldersAuthDO = new EldersAuthDO(); |
| | | eldersAuthDO.setSumitUserId(loginUserId); |
| | | eldersAuthDO.setCreateBy(loginUserId); |
| | | eldersAuthDO.setCreateAt(new Date()); |
| | | eldersAuthDO.setIdCard(idCard); |
| | | eldersAuthDO.setAuthUserName(authUserDO.getName()); |
| | | eldersAuthDO.setVideoUrl(eldersAuthAddByFamilyDTO.getVideoUrl()); |
| | | eldersAuthDO.setFamilyUserId(authUserDO.getId()); |
| | | eldersAuthDO.setAge(IdcardUtil.getAgeByIdCard(idCard)); |
| | | //根据身份证查询出籍贯 出生日期 |
| | | //String domicile = IdCard.domicile(eldersAuthDO.getIdCard()); |
| | | String domicile = eldersAuthService.queryDomicile(eldersAuthDO.getIdCard()); |
| | | if(StringUtils.isEmpty(domicile)){ |
| | | domicile = "暂无"; |
| | | } |
| | | |
| | | Date birthDay = IdCard.birthDay(idCard); |
| | | eldersAuthDO.setDomicile(domicile); |
| | | eldersAuthDO.setBirthDay(birthDay); |
| | | int add = eldersAuthService.getBaseMapper().insert(eldersAuthDO); |
| | | if(add==1){ |
| | | //设置认证成功 |
| | | Long familyUserId = eldersAuthDO.getFamilyUserId(); |
| | | ComEldersAuthUserDO comEldersAuthUserDO = new ComEldersAuthUserDO(); |
| | | comEldersAuthUserDO.setId(familyUserId); |
| | | comEldersAuthUserDO.setIsAuth(1); |
| | | boolean updated = comEldersAuthUserService.updateById(comEldersAuthUserDO); |
| | | if(!updated){ |
| | | throw new ServiceException("添加认证失败,更新认证状态"); |
| | | } |
| | | //认证成功 添加认证记录 |
| | | List<ComEldersAuthHistoryRecordDO> authHistoryRecordDOList = comEldersAuthHistoryRecordMapper.selectList(new QueryWrapper<ComEldersAuthHistoryRecordDO>() |
| | | .lambda().eq(ComEldersAuthHistoryRecordDO::getIdCard,idCard).ge(ComEldersAuthHistoryRecordDO::getCreateAt, DateUtils.getFirstDayOfMonth())); |
| | | if(authHistoryRecordDOList.isEmpty()){ |
| | | ComEldersAuthHistoryRecordDO authHistoryRecordDO = new ComEldersAuthHistoryRecordDO(); |
| | | authHistoryRecordDO.setUserId(eldersAuthAddByFamilyDTO.getFamilyUserId()); |
| | | authHistoryRecordDO.setAuthId(eldersAuthDO.getId()); |
| | | BeanUtils.copyProperties(eldersAuthDO,authHistoryRecordDO); |
| | | authHistoryRecordDO.setId(null); |
| | | authHistoryRecordDO.setBrithday(AgeUtils.getAgeFormatBirthday(IdcardUtil.getBirthByIdCard(idCard))); |
| | | authHistoryRecordDO.setAge(IdcardUtil.getAgeByIdCard(idCard)); |
| | | authHistoryRecordDO.setIsAuth(1); |
| | | authHistoryRecordDO.setDomicile(domicile); |
| | | comEldersAuthHistoryRecordMapper.insert(authHistoryRecordDO); |
| | | } |
| | | return R.ok(eldersAuthDO.getId()); |
| | | } |
| | | |
| | | return R.fail(); |
| | | } |
| | | |
| | | /** |
| | | * 新增高龄认证社区反馈 |
| | | * @param {classNameFirstLower}AddDTO 添加高龄认证社区反馈传递对象 |
| | | * @return 新增结果 |
| | | */ |
| | | @PostMapping("/eldersauth/addFeedback") |
| | | R add(@RequestBody EldersAuthFeedbackAddDTO eldersAuthFeedbackAddDTO){ |
| | | ClazzUtils.setIfStringIsEmpty(eldersAuthFeedbackAddDTO); |
| | | EldersAuthDO eldersAuthDO = eldersAuthService.getBaseMapper().selectById(eldersAuthFeedbackAddDTO.getAuthId()); |
| | | if(eldersAuthDO==null){ |
| | | return R.fail("认证记录不存在"); |
| | | } |
| | | R addR = eldersAuthService.addFeedback(eldersAuthFeedbackAddDTO); |
| | | if(R.isOk(addR)){ |
| | | SysUserNoticeVO sysUserNoticeVO=new SysUserNoticeVO(); |
| | | sysUserNoticeVO.setUserId(eldersAuthDO.getSumitUserId()); |
| | | sysUserNoticeVO.setType(3); |
| | | sysUserNoticeVO.setTitle("高龄认证社区反馈"); |
| | | sysUserNoticeVO.setBusinessType(13); |
| | | sysUserNoticeVO.setBusinessTitle(" "); |
| | | sysUserNoticeVO.setBusinessContent("你提交【" +eldersAuthDO.getAuthUserName() + "】的高龄认证,社区反馈:" |
| | | + eldersAuthFeedbackAddDTO.getFeedBack()); |
| | | sysUserNoticeVO.setBusinessId(eldersAuthDO.getId()); |
| | | sysUserNoticeVO.setStatus(0); |
| | | sysUserNoticeVO.setBusinessStatus(2); |
| | | R r1 = userService.addNotice(sysUserNoticeVO); |
| | | if (R.isOk(r1)) { |
| | | log.info("新增用户报名党建活动通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO)); |
| | | } |
| | | |
| | | //用户高龄认证反馈,推送订阅消息给用户 |
| | | Map<String,String> map = comActActSignDAO.getUserOpenId(eldersAuthDO.getSumitUserId()); |
| | | if(map != null){ |
| | | String openid = map.get("openid"); |
| | | try { |
| | | WxXCXTempSend util = new WxXCXTempSend(); |
| | | String accessToken = util.getAppAccessToken(); |
| | | WxUtil.sendSubscribeRZSH(openid,accessToken,"高龄认证" |
| | | ,DateUtils.format(eldersAuthDO.getCreateAt(),DateUtils.ymdhms_format),eldersAuthFeedbackAddDTO.getFeedBack()); |
| | | }catch (Exception e){ |
| | | log.error("推送审核状态订阅消息失败,失败原因:" + e.getMessage()); |
| | | } |
| | | } |
| | | } |
| | | return addR; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 查询导出高龄老人 |
| | | * @param pageEldersAuthDTO |
| | | * @return |
| | | */ |
| | | @PostMapping("/eldersauth/eldersAuthQuery") |
| | | R eldersAuthQuery(@RequestBody PageEldersAuthDTO pageEldersAuthDTO){ |
| | | return eldersAuthService.queryExportData(pageEldersAuthDTO); |
| | | } |
| | | |
| | | /** |
| | | * 设置社区认证方式 |
| | | * @param communityId 社区ID |
| | | * @param type 核验类型(1.视频认证 2.人脸核验) |
| | | * @return |
| | | */ |
| | | @PostMapping("/elders/setCommunityAuthType") |
| | | R setCommunityAuthType(@RequestParam("communityId")Long communityId,@RequestParam("type") Integer type){ |
| | | return eldersAuthService.setCommunityAuthType(communityId, type); |
| | | } |
| | | |
| | | /** |
| | | * 随手拍活动定时任务 |
| | | * @return 执行结果 |
| | | */ |
| | | @PostMapping("timeTaskEasyPhotoActivity") |
| | | public R timeTaskEasyPhotoActivity(){ |
| | | return comActEasyPhotoActivityService.timeTaskEasyPhotoActivity(); |
| | | } |
| | | |
| | | /** |
| | | * 社区随手拍列表统计 |
| | | * @param communityId 社区id |
| | | * @return 统计结果 |
| | | */ |
| | | @GetMapping("easyphoto/statistics") |
| | | public R easyPhotoStatistics(@RequestParam("communityId")Long communityId) { |
| | | return comActEasyPhotoService.easyPhotoStatistics(communityId); |
| | | } |
| | | |
| | | /** |
| | | * 综治后台-查询社区列表 |
| | | * @return 社区列表 |
| | | */ |
| | | @GetMapping("/eventgrid/community/list") |
| | | public R getCommunityLists(){ |
| | | return comActService.getCommunityLists(); |
| | | } |
| | | |
| | | /** |
| | | * 随手拍发放奖励 |
| | | * @param grantRewardDTO 请求参数 |
| | | * @return 发放结果 |
| | | */ |
| | | @PostMapping("/easyphoto/grantReward") |
| | | public R grantReward(@RequestBody GrantRewardDTO grantRewardDTO) { |
| | | return comActEasyPhotoService.grantReward(grantRewardDTO); |
| | | } |
| | | |
| | | /** |
| | | * 获取最新活动和用户最新收益 |
| | | * @param userId 用户id |
| | | * @param communityId 社区id |
| | | * @return 最新活动和用户最新收益 |
| | | */ |
| | | @PostMapping("easyphoto/getUserReward") |
| | | public R getUserReward(@RequestParam("userId") Long userId,@RequestParam("communityId") Long communityId) { |
| | | return comActEasyPhotoService.getUserReward(userId,communityId); |
| | | } |
| | | |
| | | /** |
| | | * 读取用户随手拍奖励 |
| | | * @param userId 用户id |
| | | * @return 读取结果 |
| | | */ |
| | | @PostMapping("easyphoto/readUserReward") |
| | | public R readUserReward(@RequestParam("userId") Long userId,@RequestParam("communityId") Long communityId) { |
| | | return comActEasyPhotoService.readUserReward(userId,communityId); |
| | | } |
| | | |
| | | /** |
| | | * 定时任务检测即将开始的社区活动,并使用订阅消息通知用户 |
| | | */ |
| | | @PostMapping("timedTaskActivityNotice") |
| | | public R timedTaskActivityNotice(){ |
| | | return comActActivityService.timedTaskActivityNotice(); |
| | | } |
| | | |
| | | |
| | | } |