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 |  642 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 642 insertions(+), 0 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
new file mode 100644
index 0000000..b0c1a5b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActMicroWishServiceImpl.java
@@ -0,0 +1,642 @@
+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;
+import com.panzhihua.common.model.vos.community.ComActMicroWishOperationRecordVO;
+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;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.ObjectUtils;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 微心愿
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 14:34
+ **/
+@Service
+@Slf4j
+public class ComActMicroWishServiceImpl extends ServiceImpl<ComActMicroWishDAO, ComActMicroWishDO> implements ComActMicroWishService {
+    @Resource
+    private ComActMicroWishDAO comActMicroWishDAO;
+    @Resource
+    private ComActMicroWishUserDAO comActMicroWishUserDAO;
+    @Resource
+    private ComActMicroWishFeedbackMapper comActMicroWishFeedbackMapper;
+    @Resource
+    private ComActMicroWishOperationRecordMapper comActMicroWishOperationRecordMapper;
+    @Resource
+    private ComActMicroWishOperationRecordService wishOperationRecordService;
+    @Resource
+    private ComActEasyPhotoHandlerService easyPhotoHandlerService;
+    /**
+     * 分页查询微心愿
+     *
+     * @param comActMicroWishVO 查询参数
+     * @return 心愿列表
+     */
+    @Override
+    public R pageMicroWish(ComActMicroWishVO comActMicroWishVO) {
+        Long userId = comActMicroWishVO.getResponsibleId();
+        Page page = new Page<>();
+        Long pageNum = comActMicroWishVO.getPageNum();
+        Long pageSize = comActMicroWishVO.getPageSize();
+        if (null==pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null==pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<ComActMicroWishVO> iPage = comActMicroWishDAO.pageMicroWish(page, 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.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);
+        }
+        return R.ok(iPage);
+    }
+
+    /**
+     * 心愿详情
+     *
+     * @param id 查询主键
+     * @param userId 登录用户id
+     * @return 心愿内容
+     */
+    @Override
+    public R detailMicroWish(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()){
+            comActMicroWishVO.setFeedbackVOList(feedList);
+        }
+        //查询操作记录
+        List<ComActMicroWishOperationRecordVO> operationList=comActMicroWishOperationRecordMapper.getByWishId(id);
+        if(!operationList.isEmpty()){
+            comActMicroWishVO.setOperationRecordVOList(operationList);
+        }
+        comActMicroWishVO.setSponsorPhone(SensitiveUtil.desensitizedPhoneNumber(comActMicroWishVO.getSponsorPhone()));
+        //查询同类型id数组
+        List<Long> idList=comActMicroWishOperationRecordMapper.selectId(comActMicroWishVO);
+        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);
+    }
+
+    /**
+     * 审核、分配、反馈心愿
+     *
+     * @param comActMicroWishVO 具体操作
+     * @return 操作结果
+     */
+    @Override
+    @Transactional
+    public synchronized R putlMicroWish(ComActMicroWishVO comActMicroWishVO) {
+        Long id = comActMicroWishVO.getId();
+        int type = comActMicroWishVO.getType().intValue();
+        String rejectReason = comActMicroWishVO.getRejectReason();
+        Long responsibleId = comActMicroWishVO.getResponsibleId();
+        String feedback = comActMicroWishVO.getFeedback();
+        String feedbackPhotoPathList = comActMicroWishVO.getFeedbackPhotoPathList();
+        ComActMicroWishDO comActMicroWishDO=new ComActMicroWishDO();
+        comActMicroWishDO.setId(id);
+        Boolean isUpdate = false;
+        Date date = new Date();
+        ComActMicroWishOperationRecordDO comActMicroWishOperationRecordDO=new ComActMicroWishOperationRecordDO();
+        comActMicroWishOperationRecordDO.setCreateTime(date);
+        comActMicroWishOperationRecordDO.setUserId(comActMicroWishVO.getUserId());
+        comActMicroWishOperationRecordDO.setWishId(comActMicroWishVO.getId());
+        ComActMicroWishDO microWishDO = this.baseMapper.selectById(id);
+        if(microWishDO == null){
+            return R.fail("未查询到该微心愿记录");
+        }
+
+//        1 审核通过 2驳回 3分配人员 4发起活动 5反馈
+        switch (type){
+            case 1:
+                isUpdate = true;
+                if(!microWishDO.getStatus().equals(ComActMicroWishDO.status.dsh)){
+                    return R.fail("该微心愿已审核,不可重复审核");
+                }
+                comActMicroWishDO.setExamineAt(date);
+                comActMicroWishDO.setAimNum(comActMicroWishVO.getAimNum());
+                comActMicroWishDO.setStatus(7);//集心中
+                comActMicroWishOperationRecordDO.setType(ComActMicroWishOperationRecordDO.type.sh);
+                comActMicroWishOperationRecordDO.setContent("审核通过");
+                comActMicroWishOperationRecordDO.setRemark("微心愿审核通过");
+                comActMicroWishOperationRecordMapper.insert(comActMicroWishOperationRecordDO);
+                break;
+            case 2:
+                isUpdate = true;
+                if(!microWishDO.getStatus().equals(ComActMicroWishDO.status.dsh)){
+                    return R.fail("该微心愿已审核,不可重复审核");
+                }
+                comActMicroWishDO.setExamineAt(date);
+                comActMicroWishDO.setRejectReason(rejectReason);
+                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);
+                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;
+                comActMicroWishDO.setDistributionAt(date);
+                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){
+                    return R.fail("反馈字数不得超过200字");
+                }
+                //新增反馈记录
+                ComActMicroWishFeedbackDO comActMicroWishFeedbackDO=new ComActMicroWishFeedbackDO();
+                comActMicroWishFeedbackDO.setCreateTime(date);
+                comActMicroWishFeedbackDO.setContent(feedback);
+                comActMicroWishFeedbackDO.setImgUrl(feedbackPhotoPathList);
+                comActMicroWishFeedbackDO.setMicroId(comActMicroWishVO.getId());
+                comActMicroWishFeedbackDO.setUserId(comActMicroWishVO.getUserId());
+                if(comActMicroWishVO.getStatus() != null && comActMicroWishVO.getStatus().equals(ComActMicroWishDO.status.dqr)){
+                    isUpdate = true;
+                    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);
+//                }
+                comActMicroWishFeedbackMapper.insert(comActMicroWishFeedbackDO);
+            default:
+                break;
+        }
+        if(isUpdate){
+            int update = comActMicroWishDAO.updateById(comActMicroWishDO);
+            if (update>0) {
+                return R.ok();
+            }
+        }else{
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 点赞/取消点赞微心愿
+     *
+     * @param comActMicroWishVO 操作参数
+     * @return 操作结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R comActMicroWishVO(ComActMicroWishVO comActMicroWishVO) {
+        Long userId = comActMicroWishVO.getSponsorId();
+        Long microWishId = comActMicroWishVO.getId();
+        //查询微心愿集心数并判断修改微心愿状态
+        ComActMicroWishDO comActMicroWishDO=comActMicroWishDAO.selectById(microWishId);
+        Integer count=comActMicroWishUserDAO.selectCount(new QueryWrapper<ComActMicroWishUserDO>().lambda().eq(ComActMicroWishUserDO::getMicroWishId, microWishId));
+        if(comActMicroWishDO!=null&&comActMicroWishDO.getAimNum()!=null&&count<comActMicroWishDO.getAimNum()){
+            if(comActMicroWishDO.getStatus()==ComActMicroWishDO.status.jx){
+                ComActMicroWishUserDO comActMicroWishUserDO = comActMicroWishUserDAO.selectOne(new QueryWrapper<ComActMicroWishUserDO>().lambda().eq(ComActMicroWishUserDO::getMicroWishId, microWishId).eq(ComActMicroWishUserDO::getUserId, userId));
+                boolean empty = ObjectUtils.isEmpty(comActMicroWishUserDO);
+                int num=0;
+                if (empty) {
+                    ComActMicroWishUserDO comActMicroWishUserDO1=new ComActMicroWishUserDO();
+                    comActMicroWishUserDO1.setMicroWishId(microWishId);
+                    comActMicroWishUserDO1.setUserId(userId);
+                    num=comActMicroWishUserDAO.insert(comActMicroWishUserDO1);
+                }else{
+                    return R.fail("无法重新点心");
+                }
+                if (num>0) {
+                    if(count>=comActMicroWishDO.getAimNum()-1){
+                        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();
+                }
+            }
+        }
+        return R.fail("该微心愿不可点心");
+    }
+
+    /**
+     * 用户确认心愿
+     *
+     * @param comActMicroWishVO 用户评价
+     * @return 确认结果
+     */
+    @Override
+    public R putMicroWishConfirm(ComActMicroWishVO comActMicroWishVO) {
+        ComActMicroWishDO comActMicroWishDO1 = comActMicroWishDAO.selectById(comActMicroWishVO.getId());
+        if (ObjectUtils.isEmpty(comActMicroWishDO1)) {
+            return R.fail("心愿不存在");
+        }
+        Integer status = comActMicroWishDO1.getStatus();
+        if (!status.equals(ComActMicroWishDO.status.dqr)) {
+            return R.fail("心愿状态不是待确认状态");
+        }
+        ComActMicroWishDO comActMicroWishDO=new ComActMicroWishDO();
+        comActMicroWishDO.setId(comActMicroWishVO.getId());
+        comActMicroWishDO.setEvaluateAt(comActMicroWishVO.getEvaluateAt());
+        comActMicroWishDO.setStatus(comActMicroWishVO.getStatus());
+        comActMicroWishDO.setScore(comActMicroWishVO.getScore());
+        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();
+    }
+
+    /**
+     * 社区首页代办事件集合
+     *
+     * @param communityId 社区id
+     * @param userId      登录用户
+     * @return 代办事件集合
+     */
+    @Override
+    public List<TodoEventsVO> selectNeedToDo(Long communityId, Long userId) {
+        List<TodoEventsVO> todoEventsVOS=comActMicroWishDAO.selectNeedToDo(communityId,userId);
+        return todoEventsVOS;
+    }
+
+    @Override
+    public R deleteMicroWish(Long id) {
+        ComActMicroWishDO comActMicroWishDO = comActMicroWishDAO.selectById(id);
+        if(comActMicroWishDO==null){
+            return R.fail("id有误!");
+        }
+        comActMicroWishDAO.deleteById(id);
+        comActMicroWishUserDAO.delete(new LambdaQueryWrapper<ComActMicroWishUserDO>().eq(ComActMicroWishUserDO::getMicroWishId,id));
+        return R.ok();
+    }
+
+    @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();
+    }
+
+    @Override
+    public R getScreenMicroList(ScreenMicroListDTO microListDTO){
+        IPage<MicroListVO> microListVOIPage = comActMicroWishDAO.getScreenMicroList(new Page(microListDTO.getPageNum(),microListDTO.getPageSize()),microListDTO);
+        if(!microListVOIPage.getRecords().isEmpty()){
+            microListVOIPage.getRecords().forEach(microListVO -> {
+                Integer count = comActMicroWishUserDAO.selectCount(new QueryWrapper<ComActMicroWishUserDO>().lambda()
+                        .eq(ComActMicroWishUserDO::getMicroWishId,microListVO.getId()));
+                microListVO.setStarNum(count);
+            });
+        }
+        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