From 70d2a5d0f9c6951b2d4cac954041ed73582ff7eb Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期一, 09 六月 2025 11:54:00 +0800 Subject: [PATCH] 6.9新增登录失败冻结逻辑 --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActMicroWishServiceImpl.java | 297 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 291 insertions(+), 6 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActMicroWishServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActMicroWishServiceImpl.java index 866e4cb..b0c1a5b 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActMicroWishServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActMicroWishServiceImpl.java @@ -1,11 +1,13 @@ package com.panzhihua.service_community.service.impl; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.DesensitizedUtil; 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.google.common.base.Joiner; import com.panzhihua.common.model.dtos.community.bigscreen.work.ScreenMicroListDTO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.ComActMicroWishFeedbackVO; @@ -13,15 +15,20 @@ import com.panzhihua.common.model.vos.community.ComActMicroWishVO; import com.panzhihua.common.model.vos.community.TodoEventsVO; import com.panzhihua.common.model.vos.community.screen.work.MicroListVO; +import com.panzhihua.common.model.vos.user.SysUserVO; import com.panzhihua.common.utlis.SensitiveUtil; +import com.panzhihua.common.utlis.StringUtils; import com.panzhihua.service_community.dao.ComActMicroWishDAO; import com.panzhihua.service_community.dao.ComActMicroWishFeedbackMapper; import com.panzhihua.service_community.dao.ComActMicroWishOperationRecordMapper; import com.panzhihua.service_community.dao.ComActMicroWishUserDAO; +import com.panzhihua.service_community.entity.ComActEasyPhotoHandler; import com.panzhihua.service_community.model.dos.ComActMicroWishDO; import com.panzhihua.service_community.model.dos.ComActMicroWishFeedbackDO; import com.panzhihua.service_community.model.dos.ComActMicroWishOperationRecordDO; import com.panzhihua.service_community.model.dos.ComActMicroWishUserDO; +import com.panzhihua.service_community.service.ComActEasyPhotoHandlerService; +import com.panzhihua.service_community.service.ComActMicroWishOperationRecordService; import com.panzhihua.service_community.service.ComActMicroWishService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -50,6 +57,10 @@ private ComActMicroWishFeedbackMapper comActMicroWishFeedbackMapper; @Resource private ComActMicroWishOperationRecordMapper comActMicroWishOperationRecordMapper; + @Resource + private ComActMicroWishOperationRecordService wishOperationRecordService; + @Resource + private ComActEasyPhotoHandlerService easyPhotoHandlerService; /** * 分页查询微心愿 * @@ -86,6 +97,60 @@ } } comActMicroWishVO1.setSponsorPhone(SensitiveUtil.desensitizedPhoneNumber(comActMicroWishVO1.getSponsorPhone())); + //查询处理人 + comActMicroWishVO1.setResponsibleName(this.getWishHandleName(comActMicroWishVO1.getHandleId())); + }); + iPage.setRecords(records); + } + return R.ok(iPage); + } + + @Override + public R pageMicroWishApplets(ComActMicroWishVO comActMicroWishVO) { + Long userId = comActMicroWishVO.getResponsibleId(); + IPage<ComActMicroWishVO> iPage = comActMicroWishDAO.pageMicroWishApplets(new Page(comActMicroWishVO.getPageNum() + ,comActMicroWishVO.getPageSize()), comActMicroWishVO); + List<ComActMicroWishVO> records = iPage.getRecords(); + if (!ObjectUtils.isEmpty(records)) { + records.forEach(comActMicroWishVO1 -> { + if(userId != null){ + Long id = comActMicroWishVO1.getId(); + ComActMicroWishUserDO comActMicroWishUserDO = comActMicroWishUserDAO.selectOne(new QueryWrapper<ComActMicroWishUserDO>().lambda().eq(ComActMicroWishUserDO::getMicroWishId, id) + .eq(ComActMicroWishUserDO::getUserId, userId)); + if (ObjectUtils.isEmpty(comActMicroWishUserDO)) { + comActMicroWishVO1.setHaveGiveThumbsUp(0); + } else { + comActMicroWishVO1.setHaveGiveThumbsUp(1); + } + } + comActMicroWishVO1.setSponsorPhone(SensitiveUtil.desensitizedPhoneNumber(comActMicroWishVO1.getSponsorPhone())); + }); + iPage.setRecords(records); + } + return R.ok(iPage); + } + + @Override + public R pageMicroWishAppletsDesensitize(ComActMicroWishVO comActMicroWishVO) { + Long userId = comActMicroWishVO.getResponsibleId(); + IPage<ComActMicroWishVO> iPage = comActMicroWishDAO.pageMicroWishApplets(new Page(comActMicroWishVO.getPageNum() + ,comActMicroWishVO.getPageSize()), comActMicroWishVO); + List<ComActMicroWishVO> records = iPage.getRecords(); + if (!ObjectUtils.isEmpty(records)) { + records.forEach(comActMicroWishVO1 -> { + if(userId != null){ + Long id = comActMicroWishVO1.getId(); + ComActMicroWishUserDO comActMicroWishUserDO = comActMicroWishUserDAO.selectOne(new QueryWrapper<ComActMicroWishUserDO>().lambda().eq(ComActMicroWishUserDO::getMicroWishId, id) + .eq(ComActMicroWishUserDO::getUserId, userId)); + if (ObjectUtils.isEmpty(comActMicroWishUserDO)) { + comActMicroWishVO1.setHaveGiveThumbsUp(0); + } else { + comActMicroWishVO1.setHaveGiveThumbsUp(1); + } + } + comActMicroWishVO1.setSponsorPhone(SensitiveUtil.desensitizedPhoneNumber(comActMicroWishVO1.getSponsorPhone())); + comActMicroWishVO1.setSponsorName(DesensitizedUtil.chineseName(comActMicroWishVO1.getSponsorName())); + comActMicroWishVO1.setResponsibleName(DesensitizedUtil.chineseName(comActMicroWishVO1.getResponsibleName())); }); iPage.setRecords(records); } @@ -136,6 +201,61 @@ if(!idList.isEmpty()){ comActMicroWishVO.setIdList(idList); } + //查询处理人 + comActMicroWishVO.setResponsibleName(this.getWishHandleName(comActMicroWishVO.getHandleId())); + return R.ok(comActMicroWishVO); + } + /** + * 心愿详情 - 脱敏 + * + * @param id 查询主键 + * @param userId 登录用户id + * @return 心愿内容 + */ + @Override + public R detailMicroWishDesensitize(Long id, Long userId) { + ComActMicroWishVO comActMicroWishVO = comActMicroWishDAO.detailMicroWish(id); + if (ObjectUtils.isEmpty(comActMicroWishVO)) { + return R.fail("微心愿不存在"); + } + Integer starNum = comActMicroWishVO.getStarNum(); + if (null==starNum) { + comActMicroWishVO.setStarNum(0); + } + if (ObjectUtils.isEmpty(comActMicroWishVO)) { + return R.fail("心愿不存在"); + } + if(userId != null){ + ComActMicroWishUserDO comActMicroWishUserDO = comActMicroWishUserDAO.selectOne(new QueryWrapper<ComActMicroWishUserDO>().lambda().eq(ComActMicroWishUserDO::getUserId, userId).eq(ComActMicroWishUserDO::getMicroWishId, id)); + if (ObjectUtils.isEmpty(comActMicroWishUserDO)) { + comActMicroWishVO.setHaveGiveThumbsUp(0); + }else { + comActMicroWishVO.setHaveGiveThumbsUp(1); + } + } + //查询反馈列表 + List<ComActMicroWishFeedbackVO> feedList=comActMicroWishFeedbackMapper.selectByWishId(id); + if(!feedList.isEmpty()){ + for (ComActMicroWishFeedbackVO comActMicroWishFeedbackVO : feedList) { + comActMicroWishFeedbackVO.setName(DesensitizedUtil.chineseName(comActMicroWishFeedbackVO.getName())); + } + comActMicroWishVO.setFeedbackVOList(feedList); + } + //查询操作记录 + List<ComActMicroWishOperationRecordVO> operationList=comActMicroWishOperationRecordMapper.getByWishId(id); + if(!operationList.isEmpty()){ + comActMicroWishVO.setOperationRecordVOList(operationList); + } + comActMicroWishVO.setSponsorPhone(SensitiveUtil.desensitizedPhoneNumber(comActMicroWishVO.getSponsorPhone())); + comActMicroWishVO.setSponsorName(DesensitizedUtil.chineseName(comActMicroWishVO.getSponsorName())); + comActMicroWishVO.setResponsibleName(DesensitizedUtil.chineseName(comActMicroWishVO.getResponsibleName())); + //查询同类型id数组 + List<Long> idList=comActMicroWishOperationRecordMapper.selectId(comActMicroWishVO); + if(!idList.isEmpty()){ + comActMicroWishVO.setIdList(idList); + } + //查询处理人 + comActMicroWishVO.setResponsibleName(DesensitizedUtil.chineseName(this.getWishHandleName(comActMicroWishVO.getHandleId()))); return R.ok(comActMicroWishVO); } @@ -147,7 +267,7 @@ */ @Override @Transactional - public R putlMicroWish(ComActMicroWishVO comActMicroWishVO) { + public synchronized R putlMicroWish(ComActMicroWishVO comActMicroWishVO) { Long id = comActMicroWishVO.getId(); int type = comActMicroWishVO.getType().intValue(); String rejectReason = comActMicroWishVO.getRejectReason(); @@ -166,6 +286,7 @@ if(microWishDO == null){ return R.fail("未查询到该微心愿记录"); } + // 1 审核通过 2驳回 3分配人员 4发起活动 5反馈 switch (type){ case 1: @@ -178,6 +299,7 @@ comActMicroWishDO.setStatus(7);//集心中 comActMicroWishOperationRecordDO.setType(ComActMicroWishOperationRecordDO.type.sh); comActMicroWishOperationRecordDO.setContent("审核通过"); + comActMicroWishOperationRecordDO.setRemark("微心愿审核通过"); comActMicroWishOperationRecordMapper.insert(comActMicroWishOperationRecordDO); break; case 2: @@ -190,14 +312,57 @@ comActMicroWishDO.setStatus(4);//驳回 comActMicroWishOperationRecordDO.setType(ComActMicroWishOperationRecordDO.type.bh); comActMicroWishOperationRecordDO.setContent(rejectReason); + comActMicroWishOperationRecordDO.setRemark("微心愿审核未通过"); comActMicroWishOperationRecordMapper.insert(comActMicroWishOperationRecordDO); break; case 3: + /** + * 状态 + * 状态 1待审核 2待分配 3进行中 4已驳回 5待确认6 已完成 + */ + if(comActMicroWishDO.getStatus()!=null && comActMicroWishDO.getStatus()!=2) + { + return R.fail("该微心愿已认领,不可重复认领"); + } + isUpdate = true; comActMicroWishDO.setDistributionAt(date); comActMicroWishDO.setResponsibleId(responsibleId); comActMicroWishDO.setStatus(3);//进行中 - comActMicroWishDO.setForm(1); +// comActMicroWishDO.setForm(1); + if(comActMicroWishVO.getHandleIds() != null && comActMicroWishVO.getHandleIds().size() > 0){ + comActMicroWishDO.setHandleId(Joiner.on(",").join(comActMicroWishVO.getHandleIds())); + } + //添加操作记录 + comActMicroWishOperationRecordDO.setType(ComActMicroWishOperationRecordDO.type.fp); + if(comActMicroWishDO.getForm()!=null) + { + if(comActMicroWishDO.getForm()==3) + { + comActMicroWishOperationRecordDO.setContent("认领心愿"); + comActMicroWishOperationRecordDO.setRemark("认领心愿"); + } + else + { + comActMicroWishOperationRecordDO.setContent("分配心愿"); + comActMicroWishOperationRecordDO.setRemark("分配心愿"); + } + } + else + { + comActMicroWishOperationRecordDO.setContent("分配心愿"); + comActMicroWishOperationRecordDO.setRemark("分配心愿"); + } + comActMicroWishOperationRecordDO.setUserId(responsibleId); + comActMicroWishOperationRecordMapper.insert(comActMicroWishOperationRecordDO); + + //添加分配人员 + if(comActMicroWishVO.getHandleList() != null && comActMicroWishVO.getHandleList().size() > 0){ + comActMicroWishVO.getHandleList().forEach(handle -> { + easyPhotoHandlerService.addHandleRecord(microWishDO.getCommunityId(),handle.getUserId() + ,microWishDO.getId(),handle.getType(), ComActEasyPhotoHandler.ServiceType.WXY,comActMicroWishVO.getSponsorId()); + }); + } break; case 4: isUpdate = true; @@ -205,6 +370,15 @@ comActMicroWishDO.setResponsibleId(responsibleId); comActMicroWishDO.setStatus(3);//待确认 comActMicroWishDO.setForm(2); + if(comActMicroWishVO.getHandleIds() != null && comActMicroWishVO.getHandleIds().size() > 0){ + comActMicroWishDO.setHandleId(Joiner.on(",").join(comActMicroWishVO.getHandleIds())); + } + //添加操作记录 + comActMicroWishOperationRecordDO.setType(ComActMicroWishOperationRecordDO.type.fp); + comActMicroWishOperationRecordDO.setContent("分配心愿"); + comActMicroWishOperationRecordDO.setRemark("分配心愿"); + comActMicroWishOperationRecordDO.setUserId(responsibleId); + comActMicroWishOperationRecordMapper.insert(comActMicroWishOperationRecordDO); break; case 5: if(comActMicroWishVO.getFeedback().length() > 200){ @@ -217,12 +391,33 @@ comActMicroWishFeedbackDO.setImgUrl(feedbackPhotoPathList); comActMicroWishFeedbackDO.setMicroId(comActMicroWishVO.getId()); comActMicroWishFeedbackDO.setUserId(comActMicroWishVO.getUserId()); - if(comActMicroWishVO.getStatus() != null && comActMicroWishVO.getStatus().equals(ComActMicroWishDO.status.ywc)){ + if(comActMicroWishVO.getStatus() != null && comActMicroWishVO.getStatus().equals(ComActMicroWishDO.status.dqr)){ isUpdate = true; - comActMicroWishDO.setStatus(ComActMicroWishDO.status.ywc); + comActMicroWishDO.setStatus(ComActMicroWishDO.status.dqr); comActMicroWishDO.setFinishAt(date); comActMicroWishDO.setFinish(feedback); comActMicroWishDO.setFinishPhotoPathList(feedbackPhotoPathList); + + //添加操作记录 + comActMicroWishOperationRecordDO.setType(ComActMicroWishOperationRecordDO.type.fk); + comActMicroWishOperationRecordDO.setContent(feedback); + comActMicroWishOperationRecordDO.setRemark("心愿已完成"); + comActMicroWishOperationRecordDO.setImgUrl(feedbackPhotoPathList); + comActMicroWishOperationRecordMapper.insert(comActMicroWishOperationRecordDO); + }else{ + //添加操作记录 + comActMicroWishOperationRecordDO.setType(ComActMicroWishOperationRecordDO.type.fk); + comActMicroWishOperationRecordDO.setContent(feedback); + if(comActMicroWishVO.getForm()==null || comActMicroWishVO.getForm() ==3 ) + { + comActMicroWishOperationRecordDO.setRemark("用户反馈"); + } + else + { + comActMicroWishOperationRecordDO.setRemark("社区反馈"); + } + comActMicroWishOperationRecordDO.setImgUrl(feedbackPhotoPathList); + comActMicroWishOperationRecordMapper.insert(comActMicroWishOperationRecordDO); } // else { // comActMicroWishDO.setStatus(3); @@ -274,6 +469,10 @@ comActMicroWishDO.setStatus(ComActMicroWishDO.status.dfp); comActMicroWishDO.setFeedbackAt(DateUtil.date()); comActMicroWishDAO.updateById(comActMicroWishDO); + + //完成集心添加操作记录 + wishOperationRecordService.addOperationRecord("完成集心",comActMicroWishDO.getSponsorId() + ,comActMicroWishDO.getId(),ComActMicroWishOperationRecordDO.type.jx,"用户完成集心",null); } return R.ok(); } @@ -295,8 +494,8 @@ return R.fail("心愿不存在"); } Integer status = comActMicroWishDO1.getStatus(); - if (!status.equals(ComActMicroWishDO.status.ywc)) { - return R.fail("心愿状态不是已完成状态"); + if (!status.equals(ComActMicroWishDO.status.dqr)) { + return R.fail("心愿状态不是待确认状态"); } ComActMicroWishDO comActMicroWishDO=new ComActMicroWishDO(); comActMicroWishDO.setId(comActMicroWishVO.getId()); @@ -306,6 +505,9 @@ comActMicroWishDO.setEvaluate(comActMicroWishVO.getEvaluate()); int update = comActMicroWishDAO.updateById(comActMicroWishDO); if (update>0) { + //用户确认心愿添加操作记录 + wishOperationRecordService.addOperationRecord(comActMicroWishVO.getEvaluate(),comActMicroWishDO1.getSponsorId() + ,comActMicroWishDO1.getId(),ComActMicroWishOperationRecordDO.type.wc,"用户已确认",null); return R.ok(); } return R.fail(); @@ -337,6 +539,14 @@ @Override public R timedTaskActMicroWishAll() { + + //微心愿自动确认前需要添加操作记录 + List<Long> wishIds = comActMicroWishDAO.getWishAutoConfirmIds(); + wishIds.forEach(wishId -> { + //需要添加操作记录 + wishOperationRecordService.addOperationRecord("系统自动确认微心愿",null + ,wishId, ComActMicroWishOperationRecordDO.type.zd,"系统自动确认微心愿",null); + }); int num=comActMicroWishDAO.updateStatusAutoConfirm(); log.info("定时任务--修改待自动确认微心愿状态数量【{}】",num); return R.ok(); @@ -354,4 +564,79 @@ } return R.ok(microListVOIPage); } + + /** + * 微心愿处理人列表 + * @param communityId 社区id + * @param type 处理人类型(1.后台用户 2.党员 3.志愿者) + * @return 处理人列表 + */ + @Override + public R wishHandleListAdmin(Long communityId,Integer type){ + return R.ok(comActMicroWishDAO.getWishHandleListAdmin(type,communityId)); + } + + /** + * 拼接处理人 + * @param handleId 处理人id字符串 + * @return 处理人名称 + */ + private String getWishHandleName(String handleId){ + StringBuffer sb = new StringBuffer(); + if(StringUtils.isNotEmpty(handleId)){ + String []handleIds = handleId.split(","); + if(handleIds.length > 0){ + for (String id : handleIds) { + SysUserVO user = comActMicroWishDAO.getUserByUserId(Long.parseLong(id)); + if(user != null){ + if(user.getType().equals(SysUserVO.type.xcx)){ + if(user.getIsPartymember().equals(SysUserVO.isOk.yes)){ + sb.append(user.getName() + "(党员),"); + }else if(user.getIsVolunteer().equals(SysUserVO.isOk.yes)){ + sb.append(user.getName() + "(志愿者),"); + }else{ + sb.append(user.getName()); + } + }else if(user.getType().equals(SysUserVO.type.sqht)){ + sb.append(user.getName() + "(后台用户),"); + } + } + } + } + } + String result = sb.toString(); + if(result.length() > 0){ + result = result.substring(0,result.length()-1); + } + return result; + } + + /** + * 社区后台分页查询微心愿 + * @param comActMicroWishVO 请求参数 + * @return 微心愿列表 + */ + @Override + public R pageMicroWishAdmin(ComActMicroWishVO comActMicroWishVO) { + Long userId = comActMicroWishVO.getResponsibleId(); + IPage<ComActMicroWishVO> iPage = comActMicroWishDAO.pageMicroWishAdmin(new Page(comActMicroWishVO.getPageNum() + ,comActMicroWishVO.getPageSize()), comActMicroWishVO); + + iPage.getRecords().forEach(comActMicroWishVO1 -> { + if(userId != null){ + Long id = comActMicroWishVO1.getId(); + ComActMicroWishUserDO comActMicroWishUserDO = comActMicroWishUserDAO.selectOne(new QueryWrapper<ComActMicroWishUserDO>().lambda().eq(ComActMicroWishUserDO::getMicroWishId, id) + .eq(ComActMicroWishUserDO::getUserId, userId)); + if (ObjectUtils.isEmpty(comActMicroWishUserDO)) { + comActMicroWishVO1.setHaveGiveThumbsUp(0); + } else { + comActMicroWishVO1.setHaveGiveThumbsUp(1); + } + } + comActMicroWishVO1.setSponsorPhone(SensitiveUtil.desensitizedPhoneNumber(comActMicroWishVO1.getSponsorPhone())); + //查询处理人 + comActMicroWishVO1.setResponsibleName(this.getWishHandleName(comActMicroWishVO1.getHandleId())); + }); + return R.ok(iPage); + } } -- Gitblit v1.7.1