From cc1098fc00a50cb1591d182f04bc37066ff0a9e2 Mon Sep 17 00:00:00 2001
From: 罗元桥 <2376770955@qq.com>
Date: 星期四, 05 八月 2021 15:12:39 +0800
Subject: [PATCH] Merge branch 'test' into 'master'

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoServiceImpl.java |  214 ++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 195 insertions(+), 19 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoServiceImpl.java
index fc552b0..fc7ddf8 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoServiceImpl.java
@@ -5,31 +5,27 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.panzhihua.common.model.dtos.community.ComActEasyPhotoCommentDTO;
+import com.panzhihua.common.model.dtos.community.GrantRewardDTO;
 import com.panzhihua.common.model.dtos.community.PageComActEasyPhotoCommentDTO;
 import com.panzhihua.common.model.dtos.community.ComActEasyPhotoCommentUserDTO;
-import com.panzhihua.common.model.dtos.partybuilding.ComPbServiceTeamDTO;
-import com.panzhihua.common.model.dtos.partybuilding.PageComPbServiceTeamDTO;
 import com.panzhihua.common.model.vos.R;
-import com.panzhihua.common.model.vos.community.ComActEasyPhotoCommentVO;
-import com.panzhihua.common.model.vos.community.ComActEasyPhotoVO;
-import com.panzhihua.common.model.vos.community.TodoEventsVO;
-import com.panzhihua.service_community.dao.ComActEasyPhotoCommentDAO;
-import com.panzhihua.service_community.dao.ComActEasyPhotoCommentUserDAO;
-import com.panzhihua.service_community.dao.ComActEasyPhotoDAO;
-import com.panzhihua.service_community.dao.ComActEasyPhotoUserDAO;
-import com.panzhihua.service_community.model.dos.ComActEasyPhotoCommentDO;
-import com.panzhihua.service_community.model.dos.ComActEasyPhotoCommentUserDO;
-import com.panzhihua.service_community.model.dos.ComActEasyPhotoDO;
-import com.panzhihua.service_community.model.dos.ComActEasyPhotoUserDO;
+import com.panzhihua.common.model.vos.community.*;
+import com.panzhihua.common.utlis.*;
+import com.panzhihua.service_community.dao.*;
+import com.panzhihua.service_community.model.dos.*;
 import com.panzhihua.service_community.service.ComActEasyPhotoService;
+import com.panzhihua.service_community.service.ComActUserWalletService;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.util.ObjectUtils;
 
 import javax.annotation.Resource;
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @program: springcloud_k8s_panzhihuazhihuishequ
@@ -37,6 +33,7 @@
  * @author: huang.hongfa weixin hhf9596 qq 959656820
  * @create: 2020-12-07 14:31
  **/
+@Slf4j
 @Service
 public class ComActEasyPhotoServiceImpl extends ServiceImpl<ComActEasyPhotoDAO, ComActEasyPhotoDO> implements ComActEasyPhotoService {
     @Resource
@@ -47,6 +44,14 @@
     private ComActEasyPhotoCommentDAO comActEasyPhotoCommentDAO ;
     @Resource
     private ComActEasyPhotoCommentUserDAO comActEasyPhotoCommentUserDAO ;
+    @Resource
+    private ComActEasyPhotoActivityMapper comActEasyPhotoActivityMapper;
+    @Resource
+    private ComActEasyPhotoRewardMapper comActEasyPhotoRewardMapper;
+    @Resource
+    private ComActUserWalletService comActUserWalletService;
+    @Resource
+    private ComActActSignDAO comActActSignDAO;
     /**
      * 分页查询随手拍
      *
@@ -78,6 +83,25 @@
                 }else {
                     comActEasyPhotoVO1.setHaveGiveThumbsUp(1);
                 }
+                comActEasyPhotoVO1.setPhone(SensitiveUtil.desensitizedPhoneNumber(comActEasyPhotoVO1.getPhone()));
+
+                if(comActEasyPhotoVO1.getActivityId() != null && comActEasyPhotoVO1.getStatus().equals(ComActEasyPhotoDO.status.ywc)){
+                    //查询随手拍活动
+                    ComActEasyPhotoActivityDO photoActivityDO = comActEasyPhotoActivityMapper.selectById(comActEasyPhotoVO1.getActivityId());
+                    if(photoActivityDO != null){
+                        if(comActEasyPhotoVO1.getActivityType() != null){
+                            if(comActEasyPhotoVO1.getActivityType().equals(ComActEasyPhotoDO.activityType.yz)){
+                                comActEasyPhotoVO1.setActivityMoney(photoActivityDO.getGoodReward());
+                            }else if(comActEasyPhotoVO1.getActivityType().equals(ComActEasyPhotoDO.activityType.jl)){
+                                comActEasyPhotoVO1.setActivityMoney(photoActivityDO.getExcellentReward());
+                            }else if(comActEasyPhotoVO1.getActivityType().equals(ComActEasyPhotoDO.activityType.pt)){
+                                comActEasyPhotoVO1.setActivityMoney(photoActivityDO.getOrdinaryReward());
+                            }else if(comActEasyPhotoVO1.getActivityType().equals(ComActEasyPhotoDO.activityType.yb)){
+                                comActEasyPhotoVO1.setActivityMoney(photoActivityDO.getCommonlyReward());
+                            }
+                        }
+                    }
+                }
             });
             iPage.setRecords(records);
         }
@@ -94,7 +118,8 @@
     @Override
     public R detailEasyPhoto(Long id, Long userId) {
         ComActEasyPhotoVO comActEasyPhotoVO=comActEasyPhotoDAO.detailEasyPhoto(id);
-        if (ObjectUtils.isEmpty(comActEasyPhotoVO)||null==comActEasyPhotoVO.getStatus()) {
+        Integer status = comActEasyPhotoVO.getStatus();
+        if (ObjectUtils.isEmpty(comActEasyPhotoVO)||null== status) {
             return R.fail("随手拍不存在");
         }
         ComActEasyPhotoUserDO comActEasyPhotoUserDO = comActEasyPhotoUserDAO.selectOne(new QueryWrapper<ComActEasyPhotoUserDO>().lambda().eq(ComActEasyPhotoUserDO::getEasyPhotoId, id).eq(ComActEasyPhotoUserDO::getUserId, userId));
@@ -103,7 +128,26 @@
         } else {
             comActEasyPhotoVO.setHaveGiveThumbsUp(1);
         }
-        List<ComActEasyPhotoCommentVO> comActEasyPhotoCommentVOList=new ArrayList<>();
+
+        if (status.intValue()==4) {
+            Date feedbackAt = comActEasyPhotoVO.getFeedbackAt();
+            if (null==feedbackAt) {
+                comActEasyPhotoVO.setFeedbackAt(comActEasyPhotoVO.getExamineAt());
+            }
+        }
+        comActEasyPhotoVO.setPhone(SensitiveUtil.desensitizedPhoneNumber(comActEasyPhotoVO.getPhone()));
+        if(comActEasyPhotoVO.getAddrRemark()==null){
+            comActEasyPhotoVO.setAddrRemark("");
+        }
+
+        if(comActEasyPhotoVO.getActivityId() != null){
+            ComActEasyPhotoActivityDO photoActivityDO = comActEasyPhotoActivityMapper.selectById(comActEasyPhotoVO.getActivityId());
+            if(photoActivityDO != null){
+                ComActEasyPhotoActivityVO easyPhotoActivityVO = new ComActEasyPhotoActivityVO();
+                BeanUtils.copyProperties(photoActivityDO,easyPhotoActivityVO);
+                comActEasyPhotoVO.setEasyPhotoActivityVO(easyPhotoActivityVO);
+            }
+        }
         return R.ok(comActEasyPhotoVO);
     }
 
@@ -117,6 +161,18 @@
     public R addEasyPhoto(ComActEasyPhotoVO comActEasyPhotoVO) {
         ComActEasyPhotoDO comActEasyPhotoDO=new ComActEasyPhotoDO();
         BeanUtils.copyProperties(comActEasyPhotoVO,comActEasyPhotoDO);
+        //查询是否在活动时间内
+        Date nowDate = DateUtils.getCurrentDate(DateUtils.ymdhms_format);
+        List<ComActEasyPhotoActivityDO> photoActivityDOS = comActEasyPhotoActivityMapper.selectList(
+                new QueryWrapper<ComActEasyPhotoActivityDO>().lambda().eq(ComActEasyPhotoActivityDO::getCommunityId,comActEasyPhotoVO.getCommunityId())
+                        .le(ComActEasyPhotoActivityDO::getActivityStartAt,nowDate).ge(ComActEasyPhotoActivityDO::getActivityEndAt,nowDate)
+                        .eq(ComActEasyPhotoActivityDO::getStatus,ComActEasyPhotoActivityDO.status.jxz));
+        if(!photoActivityDOS.isEmpty()){
+            ComActEasyPhotoActivityDO photoActivityDO = photoActivityDOS.get(0);
+            photoActivityDO.setCount(photoActivityDO.getCount() + 1);
+            comActEasyPhotoDO.setActivityId(photoActivityDO.getId());
+            comActEasyPhotoActivityMapper.updateById(photoActivityDO);
+        }
         int insert = comActEasyPhotoDAO.insert(comActEasyPhotoDO);
         if (insert>0) {
             return R.ok();
@@ -172,25 +228,41 @@
 //        操作类型 1审核通过 2驳回  3反馈
         ComActEasyPhotoDO cmActEasyPhotoDO=new ComActEasyPhotoDO();
         cmActEasyPhotoDO.setId(comActEasyPhotoVO.getId());
-        cmActEasyPhotoDO.setHandlerId(comActEasyPhotoVO.getUserId());
+//        cmActEasyPhotoDO.setActivityType(comActEasyPhotoVO.getActivityType());
         Date date = new Date();
         switch (type){
             case 1:
-                int isNeedFeedBack = comActEasyPhotoVO.getIsNeedFeedBack().intValue();
+                cmActEasyPhotoDO = this.comActEasyPhotoDAO.selectById(comActEasyPhotoVO.getId());
+                if(!cmActEasyPhotoDO.getStatus().equals(ComActEasyPhotoDO.status.dsh)){
+                    return R.fail("该随手拍已审核,不可重复操作");
+                }
+                Integer isNeedFeedBack = comActEasyPhotoVO.getIsNeedFeedBack();
                 if (isNeedFeedBack==1) {
                     cmActEasyPhotoDO.setStatus(2);//进行中
                     cmActEasyPhotoDO.setIsNeedFeedBack(1);
                 }else{
                     cmActEasyPhotoDO.setStatus(4);//已完成
                 }
+                cmActEasyPhotoDO.setHandlerId(comActEasyPhotoVO.getUserId());
                 cmActEasyPhotoDO.setExamineAt(date);
+                cmActEasyPhotoDO.setActivityType(comActEasyPhotoVO.getActivityType());
                 break;
             case 2:
+                cmActEasyPhotoDO = this.comActEasyPhotoDAO.selectById(comActEasyPhotoVO.getId());
+                if(!cmActEasyPhotoDO.getStatus().equals(ComActEasyPhotoDO.status.dsh)){
+                    return R.fail("该随手拍已审核,不可重复操作");
+                }
+                cmActEasyPhotoDO.setHandlerId(comActEasyPhotoVO.getUserId());
                 cmActEasyPhotoDO.setStatus(3);//已驳回
                 cmActEasyPhotoDO.setExamineAt(date);
                 cmActEasyPhotoDO.setRejectReason(comActEasyPhotoVO.getRejectReason());
                 break;
             case 3:
+                cmActEasyPhotoDO = this.comActEasyPhotoDAO.selectById(comActEasyPhotoVO.getId());
+                if(!cmActEasyPhotoDO.getStatus().equals(ComActEasyPhotoDO.status.dfk)){
+                    return R.fail("该随手拍不是待反馈状态,不可进行反馈");
+                }
+                cmActEasyPhotoDO.setHandlerId(comActEasyPhotoVO.getUserId());
                 cmActEasyPhotoDO.setHandleResult(comActEasyPhotoVO.getHandleResult());
                 cmActEasyPhotoDO.setHandlePhotoList(comActEasyPhotoVO.getHandlePhotoList());
                 cmActEasyPhotoDO.setStatus(4);//已完成
@@ -245,8 +317,9 @@
                 Long id = comActEasyPhotoVO1.getId();
                 Integer status = comActEasyPhotoVO1.getStatus();
                 Date feedbackAt = comActEasyPhotoVO1.getFeedbackAt();
-                ComActEasyPhotoUserDO comActEasyPhotoUserDO = comActEasyPhotoUserDAO.selectOne(new QueryWrapper<ComActEasyPhotoUserDO>().lambda().eq(ComActEasyPhotoUserDO::getEasyPhotoId, id).eq(ComActEasyPhotoUserDO::getUserId, userId));
-                if (ObjectUtils.isEmpty(comActEasyPhotoUserDO)) {
+                List<ComActEasyPhotoUserDO> comActEasyPhotoUserDO =
+                        comActEasyPhotoUserDAO.selectList(new QueryWrapper<ComActEasyPhotoUserDO>().lambda().eq(ComActEasyPhotoUserDO::getEasyPhotoId, id).eq(ComActEasyPhotoUserDO::getUserId, userId));
+                if (comActEasyPhotoUserDO==null||comActEasyPhotoUserDO.size()==0) {
                     comActEasyPhotoVO1.setHaveGiveThumbsUp(0);
                 }else {
                     comActEasyPhotoVO1.setHaveGiveThumbsUp(1);
@@ -280,6 +353,13 @@
         page.setSize(pageSize);
         page.setCurrent(pageNum);
         IPage<ComActEasyPhotoCommentVO> iPage = comActEasyPhotoCommentDAO.pageComActEasyPhotoComment(page, pageComActEasyPhotoCommentDTO);
+        if(!iPage.getRecords().isEmpty()){
+            for (ComActEasyPhotoCommentVO commentVO:iPage.getRecords()) {
+                if(StringUtils.isEmpty(commentVO.getName())){
+                    commentVO.setName(commentVO.getNickName());
+                }
+            }
+        }
         return R.ok(iPage);
     }
 
@@ -350,7 +430,103 @@
         return R.fail();
     }
 
+    /**
+     * 社区随手拍列表统计
+     * @param communityId   社区id
+     * @return  统计结果
+     */
+    @Override
+    public R easyPhotoStatistics(Long communityId){
+        return R.ok(this.baseMapper.getEasyPhotoStatistics(communityId));
+    }
 
+    /**
+     * 随手拍发放奖励
+     * @param grantRewardDTO    请求参数
+     * @return  发放结果
+     */
+    @Override
+    public R grantReward(GrantRewardDTO grantRewardDTO){
+
+        if(grantRewardDTO.getIds() == null){
+            return R.fail("参数错误");
+        }
+
+        for (Long id:grantRewardDTO.getIds()) {
+            //查询随手拍
+            ComActEasyPhotoDO easyPhotoDO = this.baseMapper.selectById(id);
+            if(easyPhotoDO != null){
+                if(easyPhotoDO.getActivityAmount() != null){
+                    log.info("该随手拍已发放过奖励,不可重复发放,随手拍id" + easyPhotoDO.getId());
+                    continue;
+                }
+                //审核通过判断随手拍是否有活动并计算用户收益
+                comActUserWalletService.examineAddMoney(easyPhotoDO.getActivityType(),easyPhotoDO.getId(),easyPhotoDO.getSponsorId(),grantRewardDTO.getAmount());
+
+                //发放奖励以后给用户推送消息
+                Map<String,String> map = comActActSignDAO.getUserOpenId(easyPhotoDO.getSponsorId());
+                if(map != null){
+                    String openid = map.get("openid");
+                    WxXCXTempSend util = new WxXCXTempSend();
+                    try {
+                        WxUtil.sendSubscribeJLDZ(openid,util.getAppAccessToken(),easyPhotoDO.getDetail(),grantRewardDTO.getAmount(),"发放随手拍奖励");
+                    }catch (Exception e){
+                        log.error("消息推送失败,失败原因:" + e.getMessage());
+                    }
+                }
+            }
+        }
+        return R.ok();
+    }
+
+    /**
+     * 获取最新活动和用户最新收益
+     * @param userId    用户id
+     * @param communityId   社区id
+     * @return  最新活动和用户最新收益
+     */
+    @Override
+    public R getUserReward(Long userId,Long communityId){
+        //结果返回参数
+        ComActEasyPhotoRewardVO easyPhotoRewardVO = new ComActEasyPhotoRewardVO();
+        //查询随手拍活动
+        ComActEasyPhotoActivityVO photoActivityVO = new ComActEasyPhotoActivityVO();
+        Date nowDate = DateUtils.getCurrentDate(DateUtils.ymdhms_format);
+        List<ComActEasyPhotoActivityDO> photoActivityDOS = comActEasyPhotoActivityMapper.selectList(
+                new QueryWrapper<ComActEasyPhotoActivityDO>().lambda().eq(ComActEasyPhotoActivityDO::getCommunityId,communityId)
+                        .eq(ComActEasyPhotoActivityDO::getStatus,ComActEasyPhotoActivityDO.status.jxz)
+                        .le(ComActEasyPhotoActivityDO::getActivityStartAt,nowDate).ge(ComActEasyPhotoActivityDO::getActivityEndAt,nowDate));
+        if(!photoActivityDOS.isEmpty()){
+            ComActEasyPhotoActivityDO photoActivityDO = photoActivityDOS.get(0);
+            BeanUtils.copyProperties(photoActivityDO,photoActivityVO);
+            easyPhotoRewardVO.setEasyPhotoActivityVO(photoActivityVO);
+        }
+
+        //查询用户未读奖励金额
+        BigDecimal amount = comActEasyPhotoRewardMapper.getUserReward(userId,communityId);
+        if(amount != null){
+            easyPhotoRewardVO.setAmount(amount);
+        }
+        return R.ok(easyPhotoRewardVO);
+    }
+
+    /**
+     * 读取用户随手拍奖励
+     * @param userId    用户id
+     * @return  读取结果
+     */
+    @Override
+    public R readUserReward(Long userId,Long communityId){
+        ComActEasyPhotoRewardDO easyPhotoRewardDO = comActEasyPhotoRewardMapper.selectOne(new QueryWrapper<ComActEasyPhotoRewardDO>().lambda()
+                .eq(ComActEasyPhotoRewardDO::getUserId,userId).eq(ComActEasyPhotoRewardDO::getCommunityId,communityId)
+                .eq(ComActEasyPhotoRewardDO::getIsRead,ComActEasyPhotoRewardDO.isRead.no));
+        if(easyPhotoRewardDO != null){
+            easyPhotoRewardDO.setIsRead(ComActEasyPhotoRewardDO.isRead.yes);
+            easyPhotoRewardDO.setUpdateAt(new Date());
+            comActEasyPhotoRewardMapper.updateById(easyPhotoRewardDO);
+        }
+        return R.ok();
+    }
 
 
 }

--
Gitblit v1.7.1