package com.panzhihua.service_community.service.impl; import java.math.BigDecimal; import java.time.LocalDate; import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; import javax.annotation.Resource; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.DesensitizedUtil; import com.alibaba.fastjson.JSONObject; import com.panzhihua.common.model.dtos.common.PageComActEasyPhotoEvaluateDto; import com.panzhihua.common.model.vos.common.ComActEasyPhotoHandlerVo; import com.panzhihua.common.model.vos.community.acid.ComActAcidColorChartsVO; 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; import org.springframework.util.ObjectUtils; 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.panzhihua.common.model.dtos.community.ComActEasyPhotoCommentDTO; import com.panzhihua.common.model.dtos.community.ComActEasyPhotoCommentUserDTO; import com.panzhihua.common.model.dtos.community.GrantRewardDTO; import com.panzhihua.common.model.dtos.community.PageComActEasyPhotoCommentDTO; import com.panzhihua.common.model.dtos.community.easyPhoto.ExportEasyPhotoDTO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.*; import com.panzhihua.common.model.vos.community.easyPhoto.ExportEasyPhotoVO; import com.panzhihua.common.utlis.DateUtils; import com.panzhihua.common.utlis.StringUtils; import com.panzhihua.common.utlis.WxUtil; import com.panzhihua.common.utlis.WxXCXTempSend; 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; /** * @program: springcloud_k8s_panzhihuazhihuishequ * @description: 随手拍 * @author: huang.hongfa weixin hhf9596 qq 959656820 * @create: 2020-12-07 14:31 **/ @Slf4j @Service public class ComActEasyPhotoServiceImpl extends ServiceImpl implements ComActEasyPhotoService { @Resource private ComActEasyPhotoDAO comActEasyPhotoDAO; @Resource private ComActEasyPhotoUserDAO comActEasyPhotoUserDAO; @Resource private ComActEasyPhotoCommentDAO comActEasyPhotoCommentDAO; @Resource private ComActEasyPhotoCommentUserDAO comActEasyPhotoCommentUserDAO; @Resource private ComActEasyPhotoActivityMapper comActEasyPhotoActivityMapper; @Resource private ComActEasyPhotoRewardMapper comActEasyPhotoRewardMapper; @Resource private ComActUserWalletService comActUserWalletService; @Resource private ComActActSignDAO comActActSignDAO; @Resource private ComActEasyPhotoFeedbackMapper comActEasyPhotoFeedbackMapper; @Resource private ComActQuestnaireDAO comActQuestnaireDAO; @Resource private ComActReserveMapper comActReserveMapper; @Resource private ComActActivityDAO comActActivityDAO; @Resource private SysTemplateConfigDao sysTemplateConfigDao; @Resource private ComActEasyPhotoHandlerService easyPhotoHandlerService; @Resource private ComActEasyPhotoEvaluateMapper comActEasyPhotoEvaluateMapper; @Resource private ComActReserveRecordMapper comActReserveRecordMapper; /** * 分页查询随手拍 * * @param comActEasyPhotoVO * 查询参数 * @return 心愿列表 */ @Override public R pageEasyPhoto(ComActEasyPhotoVO comActEasyPhotoVO) { Page page = new Page<>(); Long pageNum = comActEasyPhotoVO.getPageNum(); Long pageSize = comActEasyPhotoVO.getPageSize(); Long userId = comActEasyPhotoVO.getLogInUserId(); if (null == pageNum || 0 == pageNum) { pageNum = 1l; } if (null == pageSize || 0 == pageSize) { pageSize = 10l; } page.setSize(pageSize); page.setCurrent(pageNum); IPage iPage = comActEasyPhotoDAO.pageEasyPhotoAdmin(page, comActEasyPhotoVO); List records = iPage.getRecords(); if (!ObjectUtils.isEmpty(records)) { records.forEach(comActEasyPhotoVO1 -> { Long id = comActEasyPhotoVO1.getId(); ComActEasyPhotoUserDO comActEasyPhotoUserDO = comActEasyPhotoUserDAO.selectOne(new QueryWrapper().lambda() .eq(ComActEasyPhotoUserDO::getEasyPhotoId, id).eq(ComActEasyPhotoUserDO::getUserId, userId)); if (ObjectUtils.isEmpty(comActEasyPhotoUserDO)) { comActEasyPhotoVO1.setHaveGiveThumbsUp(0); } else { comActEasyPhotoVO1.setHaveGiveThumbsUp(1); } if (comActEasyPhotoVO1.getActivityId() != null && comActEasyPhotoVO1.getStatus().equals(ComActEasyPhotoDO.status.dpj)) { // 查询随手拍活动 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()); } else if (comActEasyPhotoVO1.getActivityType().equals(ComActEasyPhotoDO.activityType.wu)) { comActEasyPhotoVO1.setActivityMoney(BigDecimal.ZERO); } } } } }); iPage.setRecords(records); } return R.ok(iPage); } @Override public R pageEasyPhotoAdminLC(Long pageNum,Long pageSize) { Page page = new Page<>(); if (null == pageNum || 0 == pageNum) { pageNum = 1l; } if (null == pageSize || 0 == pageSize) { pageSize = 10l; } page.setSize(pageSize); page.setCurrent(pageNum); IPage iPage = comActEasyPhotoDAO.pageEasyPhotoAdminLC(page); List records = iPage.getRecords(); if (!ObjectUtils.isEmpty(records)) { records.forEach(comActEasyPhotoVO1 -> { Long id = comActEasyPhotoVO1.getId(); if (comActEasyPhotoVO1.getActivityId() != null && comActEasyPhotoVO1.getStatus().equals(ComActEasyPhotoDO.status.dpj)) { // 查询随手拍活动 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()); } else if (comActEasyPhotoVO1.getActivityType().equals(ComActEasyPhotoDO.activityType.wu)) { comActEasyPhotoVO1.setActivityMoney(BigDecimal.ZERO); } } } } }); iPage.setRecords(records); } return R.ok(iPage); } /** * 随手拍详情 * * @param id * 随手拍主键 * @param userId * @return 详情内容 */ @Override public R detailEasyPhoto(Long id, Long userId) { ComActEasyPhotoVO comActEasyPhotoVO = comActEasyPhotoDAO.detailEasyPhoto(id); Integer status = comActEasyPhotoVO.getStatus(); if (ObjectUtils.isEmpty(comActEasyPhotoVO) || null == status) { return R.fail("随手拍不存在"); } if (!userId.equals(0L)) { ComActEasyPhotoUserDO comActEasyPhotoUserDO = comActEasyPhotoUserDAO.selectOne(new QueryWrapper().lambda() .eq(ComActEasyPhotoUserDO::getEasyPhotoId, id).eq(ComActEasyPhotoUserDO::getUserId, userId)); if (ObjectUtils.isEmpty(comActEasyPhotoUserDO)) { comActEasyPhotoVO.setHaveGiveThumbsUp(0); } else { comActEasyPhotoVO.setHaveGiveThumbsUp(1); } } // if (status.equals(4)) { // Date feedbackAt = comActEasyPhotoVO.getFeedbackAt(); // if (null==feedbackAt) { // comActEasyPhotoVO.setFeedbackAt(comActEasyPhotoVO.getExamineAt()); // } // } // 查询反馈信息 List photoFeedbackList = comActEasyPhotoFeedbackMapper.getPhotoFeedbackList(id); if (!photoFeedbackList.isEmpty()) { comActEasyPhotoVO.setPhotoFeedbackList(photoFeedbackList); } // 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); } } PageComActEasyPhotoEvaluateDto evaluateDto = new PageComActEasyPhotoEvaluateDto(); evaluateDto.setServiceId(id); evaluateDto.setServiceType(ComActEasyPhotoEvaluate.ServiceType.SSP); comActEasyPhotoVO.setEvaluateList(comActEasyPhotoEvaluateMapper.queryAllByList(evaluateDto)); return R.ok(comActEasyPhotoVO); } /** * 随手拍详情 - 脱敏 * * @param id * 随手拍主键 * @param userId * @return 详情内容 */ @Override public R detailEasyPhotoDesensitize(Long id, Long userId) { ComActEasyPhotoVO comActEasyPhotoVO = comActEasyPhotoDAO.detailEasyPhoto(id); Integer status = comActEasyPhotoVO.getStatus(); if (ObjectUtils.isEmpty(comActEasyPhotoVO) || null == status) { return R.fail("随手拍不存在"); } if (!userId.equals(0L)) { ComActEasyPhotoUserDO comActEasyPhotoUserDO = comActEasyPhotoUserDAO.selectOne(new QueryWrapper().lambda() .eq(ComActEasyPhotoUserDO::getEasyPhotoId, id).eq(ComActEasyPhotoUserDO::getUserId, userId)); if (ObjectUtils.isEmpty(comActEasyPhotoUserDO)) { comActEasyPhotoVO.setHaveGiveThumbsUp(0); } else { comActEasyPhotoVO.setHaveGiveThumbsUp(1); } } comActEasyPhotoVO.setSponsorName(DesensitizedUtil.chineseName(comActEasyPhotoVO.getSponsorName())); comActEasyPhotoVO.setHandlerName(DesensitizedUtil.chineseName(comActEasyPhotoVO.getHandlerName())); comActEasyPhotoVO.setCompleteName(DesensitizedUtil.chineseName(comActEasyPhotoVO.getCompleteName())); comActEasyPhotoVO.setPhone(DesensitizedUtil.mobilePhone(comActEasyPhotoVO.getPhone())); // 查询反馈信息 List photoFeedbackList = comActEasyPhotoFeedbackMapper.getPhotoFeedbackList(id); if (!photoFeedbackList.isEmpty()) { if (CollUtil.isNotEmpty(photoFeedbackList)){ for (ComActEasyPhotoFeedbackVO comActEasyPhotoFeedbackVO : photoFeedbackList) { comActEasyPhotoFeedbackVO.setCreateByName(DesensitizedUtil.chineseName(comActEasyPhotoFeedbackVO.getCreateByName())); } } comActEasyPhotoVO.setPhotoFeedbackList(photoFeedbackList); } 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); } } PageComActEasyPhotoEvaluateDto evaluateDto = new PageComActEasyPhotoEvaluateDto(); evaluateDto.setServiceId(id); evaluateDto.setServiceType(ComActEasyPhotoEvaluate.ServiceType.SSP); comActEasyPhotoVO.setEvaluateList(comActEasyPhotoEvaluateMapper.queryAllByList(evaluateDto)); return R.ok(comActEasyPhotoVO); } /** * 上传随手拍 * * @param comActEasyPhotoVO * 上传数据 * @return 上传结果 */ @Override public R addEasyPhoto(ComActEasyPhotoVO comActEasyPhotoVO) { ComActEasyPhotoDO comActEasyPhotoDO = new ComActEasyPhotoDO(); BeanUtils.copyProperties(comActEasyPhotoVO, comActEasyPhotoDO); // 查询是否在活动时间内 Date nowDate = DateUtils.getCurrentDate(DateUtils.ymdhms_format); List photoActivityDOS = comActEasyPhotoActivityMapper.selectList(new QueryWrapper().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) { JSONObject jsonObject = new JSONObject(); jsonObject.put("id",comActEasyPhotoDO.getId()); return R.ok(jsonObject); } return R.fail(); } /** * 点赞/取消点赞随手拍 * * @param comActEasyPhotoVO * 操作参数 * @return 操作结果 */ @Override public R putEasyPhoto(ComActEasyPhotoVO comActEasyPhotoVO) { Integer haveGiveThumbsUp = comActEasyPhotoVO.getHaveGiveThumbsUp(); Long userId = comActEasyPhotoVO.getSponsorId(); Long easyPhotoId = comActEasyPhotoVO.getId(); ComActEasyPhotoUserDO comActEasyPhotoUserDO = comActEasyPhotoUserDAO.selectOne(new QueryWrapper().lambda() .eq(ComActEasyPhotoUserDO::getUserId, userId).eq(ComActEasyPhotoUserDO::getEasyPhotoId, easyPhotoId)); boolean empty = ObjectUtils.isEmpty(comActEasyPhotoUserDO); int num = 0; if (haveGiveThumbsUp.intValue() == 1) { if (empty) { ComActEasyPhotoUserDO comActEasyPhotoUserDO1 = new ComActEasyPhotoUserDO(); comActEasyPhotoUserDO1.setEasyPhotoId(easyPhotoId); comActEasyPhotoUserDO1.setUserId(userId); num = comActEasyPhotoUserDAO.insert(comActEasyPhotoUserDO1); } else { return R.ok(); } } else { if (empty) { return R.ok(); } else { num = comActEasyPhotoUserDAO.deleteById(comActEasyPhotoUserDO.getId()); } } if (num > 0) { return R.ok(); } return R.fail(); } /** * 审核反馈随手拍 * * @param comActEasyPhotoVO * 操作参数 * @return 操作结果 */ @Override public R putEasypHotoStatus(ComActEasyPhotoVO comActEasyPhotoVO) { Integer type = comActEasyPhotoVO.getType(); comActEasyPhotoVO.setIsNeedFeedBack(1); Date nowDate = new Date(); // 操作类型 1审核通过 2驳回 3反馈 4完成随手拍 ComActEasyPhotoDO cmActEasyPhotoDO = this.comActEasyPhotoDAO.selectById(comActEasyPhotoVO.getId()); if (cmActEasyPhotoDO == null) { return R.fail("未查询到随手拍记录"); } switch (type) { case 1: if (!cmActEasyPhotoDO.getStatus().equals(ComActEasyPhotoDO.status.dsh)) { return R.fail("该随手拍已处理,不可重复操作"); // return R.ok(); } cmActEasyPhotoDO.setStatus(2);// 进行中 cmActEasyPhotoDO.setIsNeedFeedBack(1); cmActEasyPhotoDO.setIsPublicity(comActEasyPhotoVO.getIsPublicity()); if (comActEasyPhotoVO.getIsReportUrban().equals(ComActEasyPhotoVO.isReportUrban.yes)) { cmActEasyPhotoDO.setIsReportUrban(ComActEasyPhotoVO.isReportUrban.yes); cmActEasyPhotoDO.setTransferReason(comActEasyPhotoVO.getTransferReason()); cmActEasyPhotoDO.setTransferTime(nowDate); } else { cmActEasyPhotoDO.setIsReportUrban(ComActEasyPhotoVO.isReportUrban.no ); } cmActEasyPhotoDO.setExamineAt(nowDate); cmActEasyPhotoDO.setActivityType(comActEasyPhotoVO.getActivityType()); if (StringUtils.isNotEmpty(comActEasyPhotoVO.getHandleResult()) || StringUtils.isNotEmpty(comActEasyPhotoVO.getHandlePhotoList())) { // 说明此处有反馈,需要给随手拍新增反馈信息 ComActEasyPhotoFeedbackDO photoFeedbackDO = new ComActEasyPhotoFeedbackDO(); photoFeedbackDO.setEasyId(comActEasyPhotoVO.getId()); photoFeedbackDO.setFeedbackContent(comActEasyPhotoVO.getHandleResult()); photoFeedbackDO.setFeedbackImg(comActEasyPhotoVO.getHandlePhotoList()); photoFeedbackDO.setCreateAt(nowDate); photoFeedbackDO.setCreateBy(comActEasyPhotoVO.getUserId()); comActEasyPhotoFeedbackMapper.insert(photoFeedbackDO); } // 审核通过判断随手拍是否有活动并计算用户收益 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)){ // return R.fail("该随手拍已处理,不可重复操作"); // } // cmActEasyPhotoDO.setHandlerId(comActEasyPhotoVO.getUserId()); // cmActEasyPhotoDO.setStatus(3);//已驳回 // cmActEasyPhotoDO.setExamineAt(nowDate); // cmActEasyPhotoDO.setRejectReason(comActEasyPhotoVO.getRejectReason()); break; case 3: 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.setCreateAt(nowDate); photoFeedbackDO.setCreateBy(comActEasyPhotoVO.getUserId()); comActEasyPhotoFeedbackMapper.insert(photoFeedbackDO); break; case 4: if (cmActEasyPhotoDO.getStatus().equals(ComActEasyPhotoDO.status.ypj)) { return R.fail("该随手拍已完成,不可重复操作"); } if (StringUtils.isNotEmpty(comActEasyPhotoVO.getHandleResult()) || StringUtils.isNotEmpty(comActEasyPhotoVO.getHandlePhotoList())) { // 说明此处有反馈,需要给随手拍新增反馈信息 ComActEasyPhotoFeedbackDO photoFeedback = new ComActEasyPhotoFeedbackDO(); photoFeedback.setEasyId(comActEasyPhotoVO.getId()); photoFeedback.setFeedbackContent(comActEasyPhotoVO.getHandleResult()); photoFeedback.setFeedbackImg(comActEasyPhotoVO.getHandlePhotoList()); photoFeedback.setCreateAt(nowDate); photoFeedback.setCreateBy(comActEasyPhotoVO.getUserId()); comActEasyPhotoFeedbackMapper.insert(photoFeedback); } // if(cmActEasyPhotoDO.getStatus().equals(ComActEasyPhotoDO.status.dsh)){ // cmActEasyPhotoDO.setExamineAt(nowDate); // cmActEasyPhotoDO.setHandlerId(comActEasyPhotoVO.getUserId()); // cmActEasyPhotoDO.setActivityType(comActEasyPhotoVO.getActivityType()); // //审核通过判断随手拍是否有活动并计算用户收益 // comActUserWalletService.examineAddMoney(comActEasyPhotoVO.getActivityType(),comActEasyPhotoVO.getId(),comActEasyPhotoVO.getUserId(),BigDecimal.ZERO); // } cmActEasyPhotoDO.setFeedbackAt(nowDate); cmActEasyPhotoDO.setStatus(ComActEasyPhotoDO.status.dpj); cmActEasyPhotoDO.setCompleteId(comActEasyPhotoVO.getUserId()); if(comActEasyPhotoVO.getUrbanStatus()!=null&&comActEasyPhotoVO.getUrbanStatus()==2){ cmActEasyPhotoDO.setUrbanStatus(2); } break; default: break; } if (!ObjectUtils.isEmpty(comActEasyPhotoVO.getIsReportDpc())){ cmActEasyPhotoDO.setIsReportDpc(comActEasyPhotoVO.getIsReportDpc()); } if (!type.equals(3)) { int update = comActEasyPhotoDAO.updateById(cmActEasyPhotoDO); if (update > 0) { return R.ok(); } } else { return R.ok(); } return R.fail(); } /** * 随手拍是否有待审核和带反馈的事件 * * @param communityId * 社区id * @param userId * 登录用户id * @return 待处理事件集合 */ @Override public List selectNeedToDo(Long communityId, Long userId) { List todoEventsVOS = comActEasyPhotoDAO.selectNeedToDo(communityId, userId); return todoEventsVOS; } /** * 小程序分页查询随手拍 * * @param comActEasyPhotoVO * 查询参数 * @return 返回结果 */ @Override public R pageEasyPhotoApplets(ComActEasyPhotoVO comActEasyPhotoVO) { Page page = new Page<>(); Long pageNum = comActEasyPhotoVO.getPageNum(); Long pageSize = comActEasyPhotoVO.getPageSize(); Long userId = comActEasyPhotoVO.getLogInUserId(); if (null == pageNum || 0 == pageNum) { pageNum = 1l; } if (null == pageSize || 0 == pageSize) { pageSize = 10l; } page.setSize(pageSize); page.setCurrent(pageNum); IPage iPage = comActEasyPhotoDAO.pageEasyPhotoApplets(page, comActEasyPhotoVO); List records = iPage.getRecords(); if (userId != null) { if (!ObjectUtils.isEmpty(records)) { records.forEach(comActEasyPhotoVO1 -> { Long id = comActEasyPhotoVO1.getId(); Integer status = comActEasyPhotoVO1.getStatus(); Date feedbackAt = comActEasyPhotoVO1.getFeedbackAt(); List comActEasyPhotoUserDO = comActEasyPhotoUserDAO.selectList( new QueryWrapper().lambda().eq(ComActEasyPhotoUserDO::getEasyPhotoId, id) .eq(ComActEasyPhotoUserDO::getUserId, userId)); if (comActEasyPhotoUserDO == null || comActEasyPhotoUserDO.size() == 0) { comActEasyPhotoVO1.setHaveGiveThumbsUp(0); } else { comActEasyPhotoVO1.setHaveGiveThumbsUp(1); } if (status.intValue() == 4 && null == feedbackAt) { comActEasyPhotoVO1.setFeedbackAt(comActEasyPhotoVO1.getExamineAt()); } }); iPage.setRecords(records); } } return R.ok(iPage); } /** * 小程序分页查询随手拍 脱敏 * * @param comActEasyPhotoVO * 查询参数 * @return 返回结果 */ @Override public R pageEasyPhotoAppletsDesensitize(ComActEasyPhotoVO comActEasyPhotoVO) { Page page = new Page<>(); Long pageNum = comActEasyPhotoVO.getPageNum(); Long pageSize = comActEasyPhotoVO.getPageSize(); Long userId = comActEasyPhotoVO.getLogInUserId(); if (null == pageNum || 0 == pageNum) { pageNum = 1l; } if (null == pageSize || 0 == pageSize) { pageSize = 10l; } page.setSize(pageSize); page.setCurrent(pageNum); IPage iPage = comActEasyPhotoDAO.pageEasyPhotoApplets(page, comActEasyPhotoVO); List records = iPage.getRecords(); if (userId != null) { if (!ObjectUtils.isEmpty(records)) { records.forEach(comActEasyPhotoVO1 -> { Long id = comActEasyPhotoVO1.getId(); Integer status = comActEasyPhotoVO1.getStatus(); Date feedbackAt = comActEasyPhotoVO1.getFeedbackAt(); comActEasyPhotoVO1.setSponsorName(DesensitizedUtil.chineseName(comActEasyPhotoVO1.getSponsorName())); comActEasyPhotoVO1.setHandlerName(DesensitizedUtil.chineseName(comActEasyPhotoVO1.getHandlerName())); comActEasyPhotoVO1.setCompleteName(DesensitizedUtil.chineseName(comActEasyPhotoVO1.getCompleteName())); comActEasyPhotoVO1.setPhone(DesensitizedUtil.mobilePhone(comActEasyPhotoVO1.getPhone())); List comActEasyPhotoUserDO = comActEasyPhotoUserDAO.selectList( new QueryWrapper().lambda().eq(ComActEasyPhotoUserDO::getEasyPhotoId, id) .eq(ComActEasyPhotoUserDO::getUserId, userId)); if (comActEasyPhotoUserDO == null || comActEasyPhotoUserDO.size() == 0) { comActEasyPhotoVO1.setHaveGiveThumbsUp(0); } else { comActEasyPhotoVO1.setHaveGiveThumbsUp(1); } if (status.intValue() == 4 && null == feedbackAt) { comActEasyPhotoVO1.setFeedbackAt(comActEasyPhotoVO1.getExamineAt()); } //反馈信息列表 List photoFeedbackList = comActEasyPhotoVO1.getPhotoFeedbackList(); if (CollUtil.isNotEmpty(photoFeedbackList)){ for (ComActEasyPhotoFeedbackVO comActEasyPhotoFeedbackVO : photoFeedbackList) { comActEasyPhotoFeedbackVO.setCreateByName(DesensitizedUtil.chineseName(comActEasyPhotoFeedbackVO.getCreateByName())); } } comActEasyPhotoVO1.setPhotoFeedbackList(photoFeedbackList); }); iPage.setRecords(records); } } return R.ok(iPage); } /** * 随手拍评论分页查询 * * @param pageComActEasyPhotoCommentDTO * 查询参数 * @return 查询结果 */ @Override public R pageComActEasyPhotoComment(PageComActEasyPhotoCommentDTO pageComActEasyPhotoCommentDTO) { Page page = new Page<>(); Long pageNum = pageComActEasyPhotoCommentDTO.getPageNum(); Long pageSize = pageComActEasyPhotoCommentDTO.getPageSize(); if (null == pageNum || 0 == pageNum) { pageNum = 1l; } if (null == pageSize || 0 == pageSize) { pageSize = 10l; } page.setSize(pageSize); page.setCurrent(pageNum); IPage 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); } /** * 随手拍评论分页查询 - 脱敏 * * @param pageComActEasyPhotoCommentDTO * 查询参数 * @return 查询结果 */ @Override public R pageComActEasyPhotoCommentDesensitize(PageComActEasyPhotoCommentDTO pageComActEasyPhotoCommentDTO) { Page page = new Page<>(); Long pageNum = pageComActEasyPhotoCommentDTO.getPageNum(); Long pageSize = pageComActEasyPhotoCommentDTO.getPageSize(); if (null == pageNum || 0 == pageNum) { pageNum = 1l; } if (null == pageSize || 0 == pageSize) { pageSize = 10l; } page.setSize(pageSize); page.setCurrent(pageNum); IPage iPage = comActEasyPhotoCommentDAO.pageComActEasyPhotoComment(page, pageComActEasyPhotoCommentDTO); if (!iPage.getRecords().isEmpty()) { for (ComActEasyPhotoCommentVO commentVO : iPage.getRecords()) { commentVO.setNickName(DesensitizedUtil.chineseName(commentVO.getNickName())); if (StringUtils.isEmpty(commentVO.getName())) { commentVO.setName(commentVO.getNickName()); } } } return R.ok(iPage); } /** * 评论点赞/取消点赞 * * @param comActEasyPhotoCommentUserDTO * 操作 * @return 操作结果 */ @Override public R commentSign(ComActEasyPhotoCommentUserDTO comActEasyPhotoCommentUserDTO) { Long id = comActEasyPhotoCommentUserDTO.getId(); if (null == id || 0 == id) { return R.fail("主键不能为空"); } ComActEasyPhotoCommentDO comActEasyPhotoCommentDO = comActEasyPhotoCommentDAO.selectById(id); if (ObjectUtils.isEmpty(comActEasyPhotoCommentDO)) { return R.fail("评论不存在"); } Integer type = comActEasyPhotoCommentUserDTO.getType(); if (null == type || type.intValue() > 2 || type.intValue() == 0) { return R.fail("操作类型错误"); } Long userId = comActEasyPhotoCommentUserDTO.getUserId(); int num = 0; if (type.intValue() == 1) { ComActEasyPhotoCommentUserDO comActEasyPhotoCommentUserDO = new ComActEasyPhotoCommentUserDO(); comActEasyPhotoCommentUserDO.setUserId(userId); comActEasyPhotoCommentUserDO.setEasyPhotoCommentId(id); ComActEasyPhotoCommentUserDO actEasyPhotoCommentUserDO = comActEasyPhotoCommentUserDAO.selectOne(new QueryWrapper().lambda() .eq(ComActEasyPhotoCommentUserDO::getUserId, userId) .eq(ComActEasyPhotoCommentUserDO::getEasyPhotoCommentId, id)); if (!ObjectUtils.isEmpty(actEasyPhotoCommentUserDO)) { num = 1; } else { num = comActEasyPhotoCommentUserDAO.insert(comActEasyPhotoCommentUserDO); } } else { num = comActEasyPhotoCommentUserDAO.delete(new QueryWrapper().lambda() .eq(ComActEasyPhotoCommentUserDO::getUserId, userId) .eq(ComActEasyPhotoCommentUserDO::getEasyPhotoCommentId, id)); } if (num > 0) { return R.ok(); } else { return R.fail(); } } /** * 随手拍--评论--新增评论 * * @param comActEasyPhotoCommentDTO * 新增内容 * @return 新增结果 */ @Override public R addComActEasyPhotoComment(ComActEasyPhotoCommentDTO comActEasyPhotoCommentDTO) { Long id = comActEasyPhotoCommentDTO.getId(); ComActEasyPhotoDO comActEasyPhotoDO = comActEasyPhotoDAO.selectById(id); if (ObjectUtils.isEmpty(comActEasyPhotoDO)) { return R.fail("随手拍不存在"); } ComActEasyPhotoCommentDO comActEasyPhotoCommentDO = new ComActEasyPhotoCommentDO(); comActEasyPhotoCommentDO.setComment(comActEasyPhotoCommentDTO.getComment()); comActEasyPhotoCommentDO.setUserId(comActEasyPhotoCommentDTO.getUserId()); comActEasyPhotoCommentDO.setEasyPhotoId(id); int insert = comActEasyPhotoCommentDAO.insert(comActEasyPhotoCommentDO); if (insert > 0) { return R.ok(); } 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()); String activityType = ""; if (easyPhotoDO.getActivityType().equals(ComActEasyPhotoDO.activityType.yz)) { activityType = "优质"; } else if (easyPhotoDO.getActivityType().equals(ComActEasyPhotoDO.activityType.jl)) { activityType = "精良"; } else if (easyPhotoDO.getActivityType().equals(ComActEasyPhotoDO.activityType.pt)) { activityType = "普通"; } else if (easyPhotoDO.getActivityType().equals(ComActEasyPhotoDO.activityType.yb)) { activityType = "一般"; } // 发放奖励以后给用户推送消息 Map map = comActActSignDAO.getUserOpenId(easyPhotoDO.getSponsorId()); if (map != null) { String openid = map.get("openid"); SysTemplateConfig sysTemplateConfig=sysTemplateConfigDao.selectOne(new QueryWrapper().lambda().eq(SysTemplateConfig::getAreaCode, grantRewardDTO.getAreaCode()).eq(SysTemplateConfig::getType,7)); WxXCXTempSend util = new WxXCXTempSend(); try { WxUtil.sendSubscribeJLDZ(openid, util.getAccessToken(), "随手拍有奖活动", grantRewardDTO.getAmount(), activityType,sysTemplateConfig.getTemplateId()); } 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 photoActivityDOS = comActEasyPhotoActivityMapper.selectList(new QueryWrapper().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() .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); } // 查询社区正在进行中的banner位置调查问卷列表 List bannerQuestnaireList = comActQuestnaireDAO.getIndexTopQuestnaireList(communityId); if (!bannerQuestnaireList.isEmpty()) { easyPhotoRewardVO.setBannerQuestnaireList(bannerQuestnaireList); } //查询社区正在进行中的banner位置的社区活动 List comActActivityVOList = comActActivityDAO.getIndexTopActivityList(communityId); if (!comActActivityVOList.isEmpty()) { easyPhotoRewardVO.setBannerActivityList(comActActivityVOList); } // 查询社区正在进行中的应用位置调查问卷列表 List applicationQuestnaireList = comActQuestnaireDAO.getIndexApplicationQuestnaireList(communityId); if (!applicationQuestnaireList.isEmpty()) { easyPhotoRewardVO.setApplicationQuestnaireList(applicationQuestnaireList); } //查询社区正在进行中的banner预约/登记列表 List comActReserveIndexVos=comActReserveMapper.indexBanner(communityId); if(!comActReserveIndexVos.isEmpty()){ easyPhotoRewardVO.setComActReserveIndexBannerVos(comActReserveIndexVos); } //查询社区正在进行中的应用预约/登记列表 List comActReserveIndexApplicationVos=comActReserveMapper.indexApplication(communityId); if(!comActReserveIndexApplicationVos.isEmpty()){ comActReserveIndexApplicationVos.forEach(comActReserveIndexVo -> { Integer count=comActReserveRecordMapper.selectCount(new QueryWrapper().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 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 photoActivityDOS = comActEasyPhotoActivityMapper.selectList(new QueryWrapper().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() .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); } /** * 读取用户随手拍奖励 * * @param userId * 用户id * @return 读取结果 */ @Override public R readUserReward(Long userId, Long communityId) { ComActEasyPhotoRewardDO easyPhotoRewardDO = comActEasyPhotoRewardMapper.selectOne(new QueryWrapper().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(); } @Override public R easyPhotoCount(ComActEasyPhotoVO comActEasyPhotoVO) { return R.ok(this.comActEasyPhotoDAO.easyPhotoCount(comActEasyPhotoVO)); } @Override public R updatePageeasyphoto(ComActEasyPhotoVO comActEasyPhotoVO) { ComActEasyPhotoDO comActEasyPhotoDO = new ComActEasyPhotoDO(); BeanUtils.copyProperties(comActEasyPhotoVO, comActEasyPhotoDO); int result = this.comActEasyPhotoDAO.updateById(comActEasyPhotoDO); if (result > 0) { return R.ok(); } return R.fail(); } @Override public R export(ExportEasyPhotoDTO exportEasyPhotoDTO) { if (exportEasyPhotoDTO != null) { List list; if (!CollectionUtils.isEmpty(exportEasyPhotoDTO.getIds())) { list = this.comActEasyPhotoDAO.exportByIds(exportEasyPhotoDTO.getIds()); } else { list = this.comActEasyPhotoDAO.export(exportEasyPhotoDTO); } return R.ok(list); } return R.fail("参数错误"); } /** * 社区后台-切换随手拍公示状态 * * @param comActEasyPhotoVO * 请求参数 * @return 切换结果 */ @Override public R easyPhotoSwitchPublicity(ComActEasyPhotoVO comActEasyPhotoVO) { // 查询随手拍 ComActEasyPhotoDO easyPhotoDO = this.baseMapper.selectById(comActEasyPhotoVO.getId()); if (easyPhotoDO == null) { return R.fail("未查询到随手拍记录"); } easyPhotoDO.setIsPublicity(comActEasyPhotoVO.getIsPublicity()); if (this.baseMapper.updateById(easyPhotoDO) > 0) { return R.ok(); } else { return R.fail(); } } /** * 查询社区待处理随手拍id集合 * * @param communityId * 社区id * @return 社区待处理随手拍id集合 */ @Override public R easyPhotoNoHandleList(Long communityId) { 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(); } /** * 获取社区置顶动态banner * @param communityId * */ @Override public R getUserRewardNew(Long userId, Long communityId) { ComActEasyPhotoRewardVO easyPhotoRewardVO=new ComActEasyPhotoRewardVO(); List bannerVOS=this.comActEasyPhotoDAO.getBanner(communityId); if(!bannerVOS.isEmpty()){ easyPhotoRewardVO.setBannerVOS(bannerVOS); } return R.ok(easyPhotoRewardVO); } @Override public R selectStatisticsPhoto(){ //所有分组 List statisticsPhotoVOS = this.baseMapper.selectPhotoAll(); int all = statisticsPhotoVOS.stream().mapToInt(StatisticsPhotoVO::getCountNum).sum(); for (StatisticsPhotoVO statisticsPhotoVO : statisticsPhotoVOS) { if (0!=all){ BigDecimal countNum = new BigDecimal(statisticsPhotoVO.getCountNum()); BigDecimal allDecimal = new BigDecimal(all); BigDecimal percent = countNum.divide(allDecimal,4, BigDecimal.ROUND_HALF_DOWN).multiply(new BigDecimal(100)); statisticsPhotoVO.setPercent(percent); } } // Map circleMap = statisticsPhotoVOS // .stream() // .collect(Collectors.toMap(StatisticsPhotoVO::getCountName, Function.identity())); //按月份查询 List statisticsPhotoVOS1 = this.baseMapper.selectPhotoByMonth(); //按类型分组求和 Map statusCollect = statisticsPhotoVOS1 .stream() .collect(Collectors.groupingBy(StatisticsPhotoVO::getCountName, Collectors.summarizingInt(StatisticsPhotoVO::getCountNum))); for (StatisticsPhotoVO statisticsPhotoVO : statisticsPhotoVOS1) { String countName = statisticsPhotoVO.getCountName(); if (statusCollect.containsKey(countName)){ IntSummaryStatistics intSummaryStatistics = statusCollect.get(countName); long sum = intSummaryStatistics.getSum(); if (0L!=sum) { BigDecimal countNum = new BigDecimal(statisticsPhotoVO.getCountNum()); BigDecimal sumDecimal = new BigDecimal(sum); BigDecimal percent = countNum.divide(sumDecimal, 4, BigDecimal.ROUND_HALF_DOWN).multiply(new BigDecimal(100)); statisticsPhotoVO.setPercent(percent); } } } Map> chartMap = statisticsPhotoVOS1.stream().collect(Collectors.groupingBy(StatisticsPhotoVO::getStatisticsDate, Collectors.toMap(StatisticsPhotoVO::getCountName, Function.identity()))); // 状态 1待处理 2进行中 3已驳回 4待评价 5.已完成 String[] statusArr = {"待处理","进行中","已驳回","待评价","已完成"}; List latest12Month = DateUtils.getLatest12Month(LocalDate.now(), 10); for (String month : latest12Month) { Map map1; if(chartMap.containsKey(month)){ map1 = chartMap.get(month); }else { map1 = new HashMap<>(); } for (String status : statusArr) { if (!map1.containsKey(status)){ StatisticsPhotoVO statisticsPhotoVO = new StatisticsPhotoVO(); statisticsPhotoVO.setCountNum(0); statisticsPhotoVO.setStatisticsDate(month); statisticsPhotoVO.setCountName(status); statisticsPhotoVOS1.add(statisticsPhotoVO); map1.put(status,statisticsPhotoVO); } } chartMap.put(month,map1); } Map> stringListMap = statisticsPhotoVOS1 .stream() .sorted(Comparator.comparing(StatisticsPhotoVO::getStatisticsDate)) .collect(Collectors.groupingBy(StatisticsPhotoVO::getCountName)); Map retMap = new HashMap<>(); retMap.put("statisticsPhotoVOS",statisticsPhotoVOS); retMap.put("monthMap",stringListMap); return R.ok(retMap); } }