张天森
2022-10-12 3c884ccd7b51edf3b36840bf99de5edaa41a38a7
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoServiceImpl.java
@@ -7,6 +7,13 @@
import javax.annotation.Resource;
import com.panzhihua.common.model.dtos.common.PageComActEasyPhotoEvaluateDto;
import com.panzhihua.common.model.vos.common.ComActEasyPhotoHandlerVo;
import com.panzhihua.common.model.vos.community.easyPhoto.BannerVO;
import com.panzhihua.service_community.entity.ComActEasyPhotoEvaluate;
import com.panzhihua.service_community.entity.ComActEasyPhotoHandler;
import com.panzhihua.service_community.entity.SysTemplateConfig;
import com.panzhihua.service_community.service.ComActEasyPhotoHandlerService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -69,7 +76,14 @@
    private ComActReserveMapper comActReserveMapper;
    @Resource
    private ComActActivityDAO comActActivityDAO;
    @Resource
    private SysTemplateConfigDao sysTemplateConfigDao;
    @Resource
    private ComActEasyPhotoHandlerService easyPhotoHandlerService;
    @Resource
    private ComActEasyPhotoEvaluateMapper comActEasyPhotoEvaluateMapper;
    @Resource
    private ComActReserveRecordMapper comActReserveRecordMapper;
    /**
     * 分页查询随手拍
     *
@@ -106,7 +120,7 @@
                }
                if (comActEasyPhotoVO1.getActivityId() != null
                    && comActEasyPhotoVO1.getStatus().equals(ComActEasyPhotoDO.status.ywc)) {
                    && comActEasyPhotoVO1.getStatus().equals(ComActEasyPhotoDO.status.dpj)) {
                    // 查询随手拍活动
                    ComActEasyPhotoActivityDO photoActivityDO =
                        comActEasyPhotoActivityMapper.selectById(comActEasyPhotoVO1.getActivityId());
@@ -185,6 +199,10 @@
                comActEasyPhotoVO.setEasyPhotoActivityVO(easyPhotoActivityVO);
            }
        }
        PageComActEasyPhotoEvaluateDto evaluateDto = new PageComActEasyPhotoEvaluateDto();
        evaluateDto.setServiceId(id);
        evaluateDto.setServiceType(ComActEasyPhotoEvaluate.ServiceType.SSP);
        comActEasyPhotoVO.setEvaluateList(comActEasyPhotoEvaluateMapper.queryAllByList(evaluateDto));
        return R.ok(comActEasyPhotoVO);
    }
@@ -288,10 +306,10 @@
                    cmActEasyPhotoDO.setIsReportUrban(ComActEasyPhotoVO.isReportUrban.yes);
                    cmActEasyPhotoDO.setTransferReason(comActEasyPhotoVO.getTransferReason());
                    cmActEasyPhotoDO.setTransferTime(nowDate);
                } else {
                    cmActEasyPhotoDO.setIsReportUrban(ComActEasyPhotoVO.isReportUrban.no);
                }
                cmActEasyPhotoDO.setHandlerId(comActEasyPhotoVO.getHandlerId());
                cmActEasyPhotoDO.setExamineAt(nowDate);
                cmActEasyPhotoDO.setActivityType(comActEasyPhotoVO.getActivityType());
                if (StringUtils.isNotEmpty(comActEasyPhotoVO.getHandleResult())
@@ -308,6 +326,15 @@
                // 审核通过判断随手拍是否有活动并计算用户收益
                comActUserWalletService.examineAddMoney(comActEasyPhotoVO.getActivityType(), comActEasyPhotoVO.getId(),
                    comActEasyPhotoVO.getUserId(), BigDecimal.ZERO);
                //添加分配人员
                if(comActEasyPhotoVO.getHandleList() != null && comActEasyPhotoVO.getHandleList().size() > 0){
                    comActEasyPhotoVO.getHandleList().forEach(handle -> {
                        cmActEasyPhotoDO.setHandlerId(handle.getUserId());
                        easyPhotoHandlerService.addHandleRecord(cmActEasyPhotoDO.getCommunityId(),handle.getUserId()
                                ,cmActEasyPhotoDO.getId(),handle.getType(), ComActEasyPhotoHandler.ServiceType.SSP,comActEasyPhotoVO.getSponsorId());
                    });
                }
                break;
            case 2:
                // if(!cmActEasyPhotoDO.getStatus().equals(ComActEasyPhotoDO.status.dsh)){
@@ -332,7 +359,7 @@
                comActEasyPhotoFeedbackMapper.insert(photoFeedbackDO);
                break;
            case 4:
                if (cmActEasyPhotoDO.getStatus().equals(ComActEasyPhotoDO.status.ywc)) {
                if (cmActEasyPhotoDO.getStatus().equals(ComActEasyPhotoDO.status.ypj)) {
                    return R.fail("该随手拍已完成,不可重复操作");
                }
                if (StringUtils.isNotEmpty(comActEasyPhotoVO.getHandleResult())
@@ -354,7 +381,7 @@
                // comActUserWalletService.examineAddMoney(comActEasyPhotoVO.getActivityType(),comActEasyPhotoVO.getId(),comActEasyPhotoVO.getUserId(),BigDecimal.ZERO);
                // }
                cmActEasyPhotoDO.setFeedbackAt(nowDate);
                cmActEasyPhotoDO.setStatus(ComActEasyPhotoDO.status.ywc);
                cmActEasyPhotoDO.setStatus(ComActEasyPhotoDO.status.dpj);
                cmActEasyPhotoDO.setCompleteId(comActEasyPhotoVO.getUserId());
                if(comActEasyPhotoVO.getUrbanStatus()!=null&&comActEasyPhotoVO.getUrbanStatus()==2){
                    cmActEasyPhotoDO.setUrbanStatus(2);
@@ -594,10 +621,11 @@
                Map<String, String> map = comActActSignDAO.getUserOpenId(easyPhotoDO.getSponsorId());
                if (map != null) {
                    String openid = map.get("openid");
                    SysTemplateConfig sysTemplateConfig=sysTemplateConfigDao.selectOne(new QueryWrapper<SysTemplateConfig>().lambda().eq(SysTemplateConfig::getAreaCode, grantRewardDTO.getAreaCode()).eq(SysTemplateConfig::getType,7));
                    WxXCXTempSend util = new WxXCXTempSend();
                    try {
                        WxUtil.sendSubscribeJLDZ(openid, util.getAppAccessToken(), "随手拍有奖活动",
                            grantRewardDTO.getAmount(), activityType);
                        WxUtil.sendSubscribeJLDZ(openid, util.getAccessToken(), "随手拍有奖活动",
                            grantRewardDTO.getAmount(), activityType,sysTemplateConfig.getTemplateId());
                    } catch (Exception e) {
                        log.error("消息推送失败,失败原因:" + e.getMessage());
                    }
@@ -691,7 +719,79 @@
        //查询社区正在进行中的应用预约/登记列表
        List<ComActReserveIndexVo> comActReserveIndexApplicationVos=comActReserveMapper.indexApplication(communityId);
        if(!comActReserveIndexApplicationVos.isEmpty()){
            comActReserveIndexApplicationVos.forEach(comActReserveIndexVo -> {
               Integer count=comActReserveRecordMapper.selectCount(new QueryWrapper<ComActReserveRecordDO>().lambda().eq(ComActReserveRecordDO::getReserveId,comActReserveIndexVo.getId()).eq(ComActReserveRecordDO::getUserId,userId));
               if(count>0){
                   comActReserveIndexVo.setIsCommit(1);
               }
               else {
                   comActReserveIndexVo.setIsCommit(2);
               }
            });
            easyPhotoRewardVO.setComActReserveIndexApplicationVos(comActReserveIndexApplicationVos);
        }
        //查询banner
        List<BannerVO> bannerVOS=this.comActEasyPhotoDAO.banner(communityId);
        if(!bannerVOS.isEmpty()){
            easyPhotoRewardVO.setBannerVOS(bannerVOS);
        }
        return R.ok(easyPhotoRewardVO);
    }
    /**
     * 获取首页弹窗接口
     *
     * @param userId
     *            用户id
     * @param communityId
     *            社区id
     * @return 首页弹窗接口
     */
    @Override
    public R getUserRewards(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);
        }
        if (userId != null && userId != 0L) {
            // 查询用户未读奖励金额
            BigDecimal amount = comActEasyPhotoRewardMapper.getUserReward(userId, communityId);
            if (amount != null) {
                easyPhotoRewardVO.setAmount(amount);
            }
        }
        // 查询当前社区正在进行中的弹窗调查问卷
        ComActQuestnaireDO popupQuestnaireDO = comActQuestnaireDAO.selectOne(new QueryWrapper<ComActQuestnaireDO>()
                .lambda().le(ComActQuestnaireDO::getStartTime, nowDate).ge(ComActQuestnaireDO::getEndTime, nowDate)
                .eq(ComActQuestnaireDO::getCommunityId, communityId).eq(ComActQuestnaireDO::getState, 2)
                .eq(ComActQuestnaireDO::getAdverPositionPopup, ComActQuestnaireDO.isOk.yes));
        if (popupQuestnaireDO != null) {
            ComActQuestnaireAppVO popupQuestnaireVO = new ComActQuestnaireAppVO();
            BeanUtils.copyProperties(popupQuestnaireDO, popupQuestnaireVO);
            if (userId != null) {
                if (popupQuestnaireDO.getIsForce().equals(ComActQuestnaireDO.isOk.no)) {
                    // 查询用户是否已点击不再提醒
                    Integer count = comActQuestnaireDAO.getNoRemindCount(userId, popupQuestnaireVO.getId());
                    if (count <= 0) {
                        popupQuestnaireVO.setIsDisplay(ComActQuestnaireDO.isOk.yes);
                    }
                } else {
                    popupQuestnaireVO.setIsDisplay(ComActQuestnaireDO.isOk.yes);
                }
            }
            easyPhotoRewardVO.setPopupQuestnaireVO(popupQuestnaireVO);
        }
        return R.ok(easyPhotoRewardVO);
    }
@@ -781,4 +881,45 @@
        return R.ok(this.baseMapper.easyPhotoNoHandleIds(communityId));
    }
    /**
     * 获取人大代表反馈记录
     * @param id 随手拍id
     * @return
     */
    @Override
    public R getFeedbackList(Long id) {
        return R.ok(comActEasyPhotoFeedbackMapper.getPhotoFeedbackListForDpc(id));
    }
    /**
     * 人大代表反馈随手拍
     * @param comActEasyPhotoVO
     * @return
     */
    @Override
    public R addEasyPhotoFeedbackForDpc(ComActEasyPhotoVO comActEasyPhotoVO) {
        Date nowDate = new Date();
        // 操作类型 1审核通过 2驳回 3反馈 4完成随手拍
        ComActEasyPhotoDO cmActEasyPhotoDO = this.comActEasyPhotoDAO.selectById(comActEasyPhotoVO.getId());
        if (cmActEasyPhotoDO == null) {
            return R.fail("未查询到随手拍记录");
        }
        if (!cmActEasyPhotoDO.getStatus().equals(ComActEasyPhotoDO.status.dfk)) {
            return R.fail("该随手拍不是进行中状态,不可进行反馈");
        }
        // 给随手拍新增反馈信息
        ComActEasyPhotoFeedbackDO photoFeedbackDO = new ComActEasyPhotoFeedbackDO();
        photoFeedbackDO.setEasyId(comActEasyPhotoVO.getId());
        photoFeedbackDO.setFeedbackContent(comActEasyPhotoVO.getHandleResult());
        photoFeedbackDO.setFeedbackImg(comActEasyPhotoVO.getHandlePhotoList());
        photoFeedbackDO.setType(2);
        photoFeedbackDO.setCreateAt(nowDate);
        photoFeedbackDO.setCreateBy(comActEasyPhotoVO.getUserId());
        int result = comActEasyPhotoFeedbackMapper.insert(photoFeedbackDO);
        if (result > 0) {
            return R.ok();
        }
        return R.fail();
    }
}