From 147a7ce2b1cc45cb58c69c82c3b0e0b2d3910b05 Mon Sep 17 00:00:00 2001
From: tangxiaobao <303826152@qq.com>
Date: 星期五, 03 九月 2021 18:13:53 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/test' into txb

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActMicroWishServiceImpl.java |  237 +++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 140 insertions(+), 97 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 5d7a6aa..6a8d37f 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,13 +1,6 @@
 package com.panzhihua.service_community.service.impl;
 
-import java.util.Date;
-import java.util.List;
-
-import javax.annotation.Resource;
-
-import org.springframework.stereotype.Service;
-import org.springframework.util.ObjectUtils;
-
+import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -15,17 +8,30 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 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.utlis.SensitiveUtil;
 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.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.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
@@ -35,18 +41,19 @@
  **/
 @Service
 @Slf4j
-public class ComActMicroWishServiceImpl extends ServiceImpl<ComActMicroWishDAO, ComActMicroWishDO>
-    implements ComActMicroWishService {
+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;
     /**
      * 分页查询微心愿
      *
-     * @param comActMicroWishVO
-     *            查询参数
+     * @param comActMicroWishVO 查询参数
      * @return 心愿列表
      */
     @Override
@@ -55,10 +62,10 @@
         Page page = new Page<>();
         Long pageNum = comActMicroWishVO.getPageNum();
         Long pageSize = comActMicroWishVO.getPageSize();
-        if (null == pageNum || 0 == pageNum) {
+        if (null==pageNum || 0 == pageNum) {
             pageNum = 1l;
         }
-        if (null == pageSize || 0 == pageSize) {
+        if (null==pageSize || 0 == pageSize) {
             pageSize = 10l;
         }
         page.setSize(pageSize);
@@ -68,10 +75,9 @@
         List<ComActMicroWishVO> records = iPage.getRecords();
         if (!ObjectUtils.isEmpty(records)) {
             records.forEach(comActMicroWishVO1 -> {
-                if (userId != null) {
+                if(userId != null){
                     Long id = comActMicroWishVO1.getId();
-                    ComActMicroWishUserDO comActMicroWishUserDO = comActMicroWishUserDAO.selectOne(
-                        new QueryWrapper<ComActMicroWishUserDO>().lambda().eq(ComActMicroWishUserDO::getMicroWishId, id)
+                    ComActMicroWishUserDO comActMicroWishUserDO = comActMicroWishUserDAO.selectOne(new QueryWrapper<ComActMicroWishUserDO>().lambda().eq(ComActMicroWishUserDO::getMicroWishId, id)
                             .eq(ComActMicroWishUserDO::getUserId, userId));
                     if (ObjectUtils.isEmpty(comActMicroWishUserDO)) {
                         comActMicroWishVO1.setHaveGiveThumbsUp(0);
@@ -79,8 +85,7 @@
                         comActMicroWishVO1.setHaveGiveThumbsUp(1);
                     }
                 }
-                comActMicroWishVO1
-                    .setSponsorPhone(SensitiveUtil.desensitizedPhoneNumber(comActMicroWishVO1.getSponsorPhone()));
+                comActMicroWishVO1.setSponsorPhone(SensitiveUtil.desensitizedPhoneNumber(comActMicroWishVO1.getSponsorPhone()));
             });
             iPage.setRecords(records);
         }
@@ -90,10 +95,8 @@
     /**
      * 心愿详情
      *
-     * @param id
-     *            查询主键
-     * @param userId
-     *            登录用户id
+     * @param id 查询主键
+     * @param userId 登录用户id
      * @return 心愿内容
      */
     @Override
@@ -103,34 +106,47 @@
             return R.fail("微心愿不存在");
         }
         Integer starNum = comActMicroWishVO.getStarNum();
-        if (null == starNum) {
+        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(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 {
+            }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);
+        }
         return R.ok(comActMicroWishVO);
     }
 
     /**
      * 审核、分配、反馈心愿
      *
-     * @param comActMicroWishVO
-     *            具体操作
+     * @param comActMicroWishVO 具体操作
      * @return 操作结果
      */
     @Override
+    @Transactional
     public R putlMicroWish(ComActMicroWishVO comActMicroWishVO) {
         Long id = comActMicroWishVO.getId();
         int type = comActMicroWishVO.getType().intValue();
@@ -138,49 +154,80 @@
         Long responsibleId = comActMicroWishVO.getResponsibleId();
         String feedback = comActMicroWishVO.getFeedback();
         String feedbackPhotoPathList = comActMicroWishVO.getFeedbackPhotoPathList();
-        ComActMicroWishDO comActMicroWishDO = new ComActMicroWishDO();
+        ComActMicroWishDO comActMicroWishDO=new ComActMicroWishDO();
         comActMicroWishDO.setId(id);
         Date date = new Date();
-        // 1 审核通过 2驳回 3分配人员 4发起活动 5反馈
-        switch (type) {
+        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:
+                if(!microWishDO.getStatus().equals(ComActMicroWishDO.status.dsh)){
+                    return R.fail("该微心愿已审核,不可重复审核");
+                }
                 comActMicroWishDO.setExamineAt(date);
-                comActMicroWishDO.setStatus(2);// 待分配
+                comActMicroWishDO.setAimNum(comActMicroWishVO.getAimNum());
+                comActMicroWishDO.setStatus(7);//集心中
+                comActMicroWishOperationRecordDO.setType(ComActMicroWishOperationRecordDO.type.sh);
+                comActMicroWishOperationRecordDO.setContent("审核通过");
+                comActMicroWishOperationRecordMapper.insert(comActMicroWishOperationRecordDO);
                 break;
             case 2:
+                if(!microWishDO.getStatus().equals(ComActMicroWishDO.status.dsh)){
+                    return R.fail("该微心愿已审核,不可重复审核");
+                }
                 comActMicroWishDO.setExamineAt(date);
                 comActMicroWishDO.setRejectReason(rejectReason);
-                comActMicroWishDO.setStatus(4);// 驳回
+                comActMicroWishDO.setStatus(4);//驳回
+                comActMicroWishOperationRecordDO.setType(ComActMicroWishOperationRecordDO.type.bh);
+                comActMicroWishOperationRecordDO.setContent(rejectReason);
+                comActMicroWishOperationRecordMapper.insert(comActMicroWishOperationRecordDO);
                 break;
             case 3:
                 comActMicroWishDO.setDistributionAt(date);
                 comActMicroWishDO.setResponsibleId(responsibleId);
-                comActMicroWishDO.setStatus(3);// 进行中
+                comActMicroWishDO.setStatus(3);//进行中
                 comActMicroWishDO.setForm(1);
                 break;
             case 4:
                 comActMicroWishDO.setDistributionAt(date);
                 comActMicroWishDO.setResponsibleId(responsibleId);
-                comActMicroWishDO.setStatus(3);// 待确认
+                comActMicroWishDO.setStatus(3);//待确认
                 comActMicroWishDO.setForm(2);
                 break;
             case 5:
-                if (comActMicroWishVO.getFeedback().length() > 200) {
+                if(comActMicroWishVO.getFeedback().length() > 200){
                     return R.fail("反馈字数不得超过200字");
                 }
-                comActMicroWishDO.setFeedbackAt(date);
-                comActMicroWishDO.setStatus(5);// 待确认
-                comActMicroWishDO.setFeedback(feedback);
-                comActMicroWishDO.setFinish(feedback);
-                comActMicroWishDO.setFinishPhotoPathList(feedbackPhotoPathList);
-                comActMicroWishDO.setFinishAt(date);
-                comActMicroWishDO.setFeedbackPhotoPathList(feedbackPhotoPathList);
-                break;
+                //新增反馈记录
+                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.ywc)){
+                    comActMicroWishDO.setStatus(comActMicroWishVO.getStatus());
+                    comActMicroWishDO.setFinishAt(date);
+                    comActMicroWishDO.setFinish(feedback);
+                    comActMicroWishDO.setFinishPhotoPathList(feedbackPhotoPathList);
+                }
+//                else {
+//                    comActMicroWishDO.setStatus(3);
+//                }
+                comActMicroWishFeedbackMapper.insert(comActMicroWishFeedbackDO);
+                return R.ok();
             default:
                 break;
         }
         int update = comActMicroWishDAO.updateById(comActMicroWishDO);
-        if (update > 0) {
+        if (update>0) {
             return R.ok();
         }
         return R.fail();
@@ -189,47 +236,47 @@
     /**
      * 点赞/取消点赞微心愿
      *
-     * @param comActMicroWishVO
-     *            操作参数
+     * @param comActMicroWishVO 操作参数
      * @return 操作结果
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public R comActMicroWishVO(ComActMicroWishVO comActMicroWishVO) {
-        Integer haveGiveThumbsUp = comActMicroWishVO.getHaveGiveThumbsUp();
         Long userId = comActMicroWishVO.getSponsorId();
         Long microWishId = comActMicroWishVO.getId();
-        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 (haveGiveThumbsUp.intValue() == 1) {
-            if (empty) {
-                ComActMicroWishUserDO comActMicroWishUserDO1 = new ComActMicroWishUserDO();
-                comActMicroWishUserDO1.setMicroWishId(microWishId);
-                comActMicroWishUserDO1.setUserId(userId);
-                num = comActMicroWishUserDAO.insert(comActMicroWishUserDO1);
-            } else {
-                return R.ok();
-            }
-        } else {
-            if (empty) {
-                return R.ok();
-            } else {
-                num = comActMicroWishUserDAO.deleteById(comActMicroWishUserDO.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);
+                    }
+                    return R.ok();
+                }
             }
         }
-        if (num > 0) {
-            return R.ok();
-        }
-        return R.fail();
+        return R.fail("该微心愿不可点心");
     }
 
     /**
      * 用户确认心愿
      *
-     * @param comActMicroWishVO
-     *            用户评价
+     * @param comActMicroWishVO 用户评价
      * @return 确认结果
      */
     @Override
@@ -239,17 +286,17 @@
             return R.fail("心愿不存在");
         }
         Integer status = comActMicroWishDO1.getStatus();
-        if (status.intValue() != 5) {
-            return R.fail("心愿状态不是待确认");
+        if (!status.equals(ComActMicroWishDO.status.ywc)) {
+            return R.fail("心愿状态不是已完成状态");
         }
-        ComActMicroWishDO comActMicroWishDO = new ComActMicroWishDO();
+        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) {
+        if (update>0) {
             return R.ok();
         }
         return R.fail();
@@ -258,45 +305,41 @@
     /**
      * 社区首页代办事件集合
      *
-     * @param communityId
-     *            社区id
-     * @param userId
-     *            登录用户
+     * @param communityId 社区id
+     * @param userId      登录用户
      * @return 代办事件集合
      */
     @Override
     public List<TodoEventsVO> selectNeedToDo(Long communityId, Long userId) {
-        List<TodoEventsVO> todoEventsVOS = comActMicroWishDAO.selectNeedToDo(communityId, userId);
+        List<TodoEventsVO> todoEventsVOS=comActMicroWishDAO.selectNeedToDo(communityId,userId);
         return todoEventsVOS;
     }
 
     @Override
     public R deleteMicroWish(Long id) {
         ComActMicroWishDO comActMicroWishDO = comActMicroWishDAO.selectById(id);
-        if (comActMicroWishDO == null) {
+        if(comActMicroWishDO==null){
             return R.fail("id有误!");
         }
         comActMicroWishDAO.deleteById(id);
-        comActMicroWishUserDAO
-            .delete(new LambdaQueryWrapper<ComActMicroWishUserDO>().eq(ComActMicroWishUserDO::getMicroWishId, id));
+        comActMicroWishUserDAO.delete(new LambdaQueryWrapper<ComActMicroWishUserDO>().eq(ComActMicroWishUserDO::getMicroWishId,id));
         return R.ok();
     }
 
     @Override
     public R timedTaskActMicroWishAll() {
-        int num = comActMicroWishDAO.updateStatusAutoConfirm();
-        log.info("定时任务--修改待自动确认微心愿状态数量【{}】", num);
+        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()) {
+    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()));
+                        .eq(ComActMicroWishUserDO::getMicroWishId,microListVO.getId()));
                 microListVO.setStarNum(count);
             });
         }

--
Gitblit v1.7.1