From 85cf42314fc04a637f1a44e78c1e476a445bf0f3 Mon Sep 17 00:00:00 2001 From: 101captain <237651143@qq.com> Date: 星期一, 14 三月 2022 13:29:18 +0800 Subject: [PATCH] Merge branch 'dev' --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComFmsServiceServiceImpl.java | 423 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 423 insertions(+), 0 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComFmsServiceServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComFmsServiceServiceImpl.java new file mode 100644 index 0000000..f27f68d --- /dev/null +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComFmsServiceServiceImpl.java @@ -0,0 +1,423 @@ +package com.panzhihua.service_community.service.impl; + +import static java.util.Objects.isNull; +import static java.util.Objects.nonNull; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import javax.annotation.Resource; + +import com.panzhihua.service_community.dao.ComFmsTeamMemberDAO; +import com.panzhihua.service_community.entity.ComFmsTeamMember; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +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.panzhihua.common.model.dtos.community.fms.AddFmsServiceAdminDTO; +import com.panzhihua.common.model.dtos.community.fms.ApplyFmsServiceDTO; +import com.panzhihua.common.model.dtos.community.fms.ApprovalFmsServiceAdminDTO; +import com.panzhihua.common.model.dtos.community.fms.FeedbackFmsServiceDTO; +import com.panzhihua.common.model.dtos.community.fms.PageFmsServiceAdminDTO; +import com.panzhihua.common.model.dtos.community.fms.PageFmsServiceAppletsDTO; +import com.panzhihua.common.model.vos.LoginUserInfoVO; +import com.panzhihua.common.model.vos.R; +import com.panzhihua.common.model.vos.community.fms.ComFmsServiceEvaluateVO; +import com.panzhihua.common.model.vos.community.fms.ComFmsServiceImportExcelVO; +import com.panzhihua.common.model.vos.community.fms.ComFmsServiceRecordVO; +import com.panzhihua.common.model.vos.community.fms.ComFmsServiceVO; +import com.panzhihua.common.utlis.DateUtils; +import com.panzhihua.service_community.dao.ComFmsServiceDAO; +import com.panzhihua.service_community.dao.ComFmsServiceEvaluationsDAO; +import com.panzhihua.service_community.dao.ComFmsServiceRecordDAO; +import com.panzhihua.service_community.entity.ComFmsService; +import com.panzhihua.service_community.entity.ComFmsServiceEvaluations; +import com.panzhihua.service_community.entity.ComFmsServiceRecord; +import com.panzhihua.service_community.service.ComFmsServiceService; + +/** + * 五微服务-微服务(ComFmsService)表服务实现类 + * + * @author makejava + * @since 2022-02-11 13:35:53 + */ +@Service("comFmsServiceService") +public class ComFmsServiceServiceImpl extends ServiceImpl<ComFmsServiceDAO, ComFmsService> + implements ComFmsServiceService { + + @Resource + private ComFmsServiceRecordDAO comFmsServiceRecordDAO; + @Resource + private ComFmsServiceEvaluationsDAO comFmsServiceEvaluationsDAO; + @Resource + private ComFmsTeamMemberDAO comFmsTeamMemberDAO; + + /** + * 后台新增微服务 + * @param adminDTO + * @return + */ + @Override + public R addFmsServiceAdmin(AddFmsServiceAdminDTO adminDTO) { + ComFmsService comFmsService = new ComFmsService(); + BeanUtils.copyProperties(adminDTO, comFmsService); + comFmsService.setServiceStatus(ComFmsService.ServiceStatus.ywc); + comFmsService.setApprovalAt(new Date()); + int num = this.baseMapper.insert(comFmsService); + if (num > 0) { + //服务记录 + ComFmsServiceRecord comFmsServiceRecord = new ComFmsServiceRecord(); + comFmsServiceRecord.setServiceId(comFmsService.getId()); + comFmsServiceRecord.setContent(adminDTO.getServiceProcess()); + comFmsServiceRecord.setImage(adminDTO.getProcessImage()); + comFmsServiceRecord.setStage(ComFmsServiceRecord.Stage.WCFW); + comFmsServiceRecord.setCreatedBy(adminDTO.getCreatedBy()); + comFmsServiceRecordDAO.insert(comFmsServiceRecord); + //默认好评 + ComFmsServiceEvaluations evaluation = new ComFmsServiceEvaluations(); + evaluation.setServiceId(comFmsService.getId()); + evaluation.setStarLevel(5); + evaluation.setEvaluateContent("系统默认好评!"); + evaluation.setUserId(comFmsService.getUserId()); + comFmsServiceEvaluationsDAO.insert(evaluation); + return R.ok(); + } + return R.fail("操作失败,请重新尝试"); + } + + /** + * 后台分页查询微服务 + * @param adminDTO + * @return + */ + @Override + public R pageFmsServiceAdmin(PageFmsServiceAdminDTO adminDTO) { + Page page = new Page<>(); + page.setSize(adminDTO.getPageSize()); + page.setCurrent(adminDTO.getPageNum()); + return R.ok(this.baseMapper.pageFmsServiceAdmin(page, adminDTO)); + } + + /** + * 后台核实微服务 + * @param adminDTO + * @return + */ + @Override + public R approvalFmsService(ApprovalFmsServiceAdminDTO adminDTO) { + ComFmsService comFmsService = this.baseMapper.selectById(adminDTO.getServiceId()); + if (isNull(comFmsService)) { + return R.fail("资源不存在"); + } + comFmsService.setServiceStatus(adminDTO.getIsPass() ? ComFmsService.ServiceStatus.jxz : ComFmsService.ServiceStatus.wtg); + comFmsService.setApprovalContent(adminDTO.getContent()); + comFmsService.setApprovalAt(new Date()); + if (adminDTO.getIsPass()) { + comFmsService.setMemberId(adminDTO.getMemberId()); + } + comFmsService.setUpdatedBy(adminDTO.getUpdatedBy()); + int num = this.baseMapper.updateById(comFmsService); + if (num > 0) { + ComFmsServiceRecord comFmsServiceRecord = new ComFmsServiceRecord(); + comFmsServiceRecord.setServiceId(comFmsService.getId()); + comFmsServiceRecord.setContent(adminDTO.getContent()); + comFmsServiceRecord.setStage(adminDTO.getIsPass() ? ComFmsServiceRecord.Stage.SHTG : ComFmsServiceRecord.Stage.HSBTG); + comFmsServiceRecord.setCreatedBy(adminDTO.getUpdatedBy()); + comFmsServiceRecordDAO.insert(comFmsServiceRecord); + return R.ok(); + } + return R.fail("操作失败,请重新尝试"); + } + + /** + * 后台查看微服务详情 + * @param serviceId + * @return + */ + @Override + public R detailFmsServiceAdmin(Long serviceId) { + ComFmsServiceVO serviceVO = this.baseMapper.detailFmsServiceAdmin(serviceId); + if (isNull(serviceVO)) { + return R.fail("资源不存在"); + } + List<ComFmsServiceRecord> serviceRecords = comFmsServiceRecordDAO.selectList(new LambdaQueryWrapper<ComFmsServiceRecord>() + .eq(ComFmsServiceRecord::getServiceId, serviceId) + .orderByDesc(ComFmsServiceRecord::getCreatedAt)); + if (!serviceRecords.isEmpty()) { + List<ComFmsServiceRecordVO> recordVOList = new ArrayList<>(); + serviceRecords.forEach(e -> { + ComFmsServiceRecordVO recordVO = new ComFmsServiceRecordVO(); + BeanUtils.copyProperties(e, recordVO); + recordVOList.add(recordVO); + }); + serviceVO.setServiceRecords(recordVOList); + } + return R.ok(serviceVO); + } + + /** + * 后台删除微服务 + * @param serviceId + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public R deleteFmsServiceAdmin(Long serviceId) { + int num = this.baseMapper.deleteById(serviceId); + if (num > 0) { + comFmsServiceRecordDAO.delete(new LambdaQueryWrapper<ComFmsServiceRecord>().eq(ComFmsServiceRecord::getServiceId, serviceId)); + comFmsServiceEvaluationsDAO.delete(new LambdaQueryWrapper<ComFmsServiceEvaluations>().eq(ComFmsServiceEvaluations::getServiceId, serviceId)); + return R.ok(); + } + return R.fail("操作失败,请重新尝试"); + } + + /** + * 微服务顶部统计 + * @param communityId + * @return + */ + @Override + public R statisticsFmsService(Long communityId) { + return R.ok(this.baseMapper.statisticsFmsService(communityId)); + } + + /** + * 后台导入微服务数据 + * @param voList + * @param communityId + * @param userId + * @return + */ + @Override + public R listSaveFmsServiceExcelVO(List<ComFmsServiceImportExcelVO> voList, Long communityId, Long userId) { + voList.forEach(e -> { + ComFmsService comFmsService = new ComFmsService(); + BeanUtils.copyProperties(e, comFmsService); + comFmsService.setCommunityId(communityId); + comFmsService.setCreatedBy(userId); + comFmsService.setUpdatedBy(userId); + comFmsService.setServiceStatus(ComFmsService.ServiceStatus.ywc); + int num = this.baseMapper.insert(comFmsService); + if (num > 0) { + ComFmsServiceRecord comFmsServiceRecord = new ComFmsServiceRecord(); + comFmsServiceRecord.setServiceId(comFmsService.getId()); + comFmsServiceRecord.setContent(e.getServiceProcess()); + comFmsServiceRecord.setStage(ComFmsServiceRecord.Stage.WCFW); + comFmsServiceRecord.setCreatedBy(userId); + comFmsServiceRecordDAO.insert(comFmsServiceRecord); + + //默认好评 + ComFmsServiceEvaluations evaluation = new ComFmsServiceEvaluations(); + evaluation.setServiceId(comFmsService.getId()); + evaluation.setStarLevel(5); + evaluation.setEvaluateContent("系统默认好评!"); + evaluation.setUserId(comFmsService.getUserId()); + comFmsServiceEvaluationsDAO.insert(evaluation); + } + }); + return R.ok(); + } + + /** + * 小程序分页查询微服务 + * @param adminDTO + * @return + */ + @Override + public R pageFmsServiceApplets(PageFmsServiceAppletsDTO adminDTO) { + Page page = new Page<>(); + page.setSize(adminDTO.getPageSize()); + page.setCurrent(adminDTO.getPageNum()); + return R.ok(this.baseMapper.pageFmsServiceAdminApplets(page, adminDTO)); + } + + /** + * 小程序查看微服务详情 + * @param serviceId + * @param userId + * @return + */ + @Override + public R detailFmsServiceApplets(Long serviceId, Long userId) { + ComFmsServiceVO serviceDetail = this.baseMapper.detailFmsServiceApplets(serviceId); + if (nonNull(serviceDetail)) { + List<ComFmsServiceRecord> serviceRecords = comFmsServiceRecordDAO.selectList(new LambdaQueryWrapper<ComFmsServiceRecord>() + .eq(ComFmsServiceRecord::getServiceId, serviceId) + .orderByDesc(ComFmsServiceRecord::getCreatedAt)); + if (!serviceRecords.isEmpty()) { + List<ComFmsServiceRecordVO> recordVOList = new ArrayList<>(); + serviceRecords.forEach(e -> { + ComFmsServiceRecordVO recordVO = new ComFmsServiceRecordVO(); + BeanUtils.copyProperties(e, recordVO); + recordVOList.add(recordVO); + }); + serviceDetail.setServiceRecords(recordVOList); + } + ComFmsServiceEvaluations evaluation = comFmsServiceEvaluationsDAO.selectOne(new LambdaQueryWrapper<ComFmsServiceEvaluations>() + .eq(ComFmsServiceEvaluations::getServiceId, serviceId)); + if (nonNull(evaluation)) { + ComFmsServiceEvaluateVO evaluateVO = new ComFmsServiceEvaluateVO(); + BeanUtils.copyProperties(evaluation, evaluateVO); + serviceDetail.setEvaluateVO(evaluateVO); + } + serviceDetail.setIsMyself(nonNull(userId) && userId.equals(serviceDetail.getUserId())); + if (serviceDetail.getServiceStatus().equals(ComFmsService.ServiceStatus.dpj)) { + Date autoEvaluateAt = DateUtils.addDay(serviceDetail.getCreatedAt(), 3); + Date nowDate = new Date(); + serviceDetail.setAutoEvaluateAt(autoEvaluateAt.getTime() - nowDate.getTime()); + } + } + return R.ok(serviceDetail); + } + + /** + * 微服务申请 + * @param adminDTO + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public R applyFmsService(ApplyFmsServiceDTO adminDTO) { + LoginUserInfoVO userInfo = adminDTO.getUserInfo(); + ComFmsService comFmsService = new ComFmsService(); + BeanUtils.copyProperties(adminDTO, comFmsService); + comFmsService.setCommunityId(userInfo.getCommunityId()); + comFmsService.setCreatedBy(userInfo.getUserId()); + comFmsService.setUpdatedBy(userInfo.getUserId()); + comFmsService.setUserId(userInfo.getUserId()); + comFmsService.setUserName(userInfo.getNickName()); + comFmsService.setPhone(userInfo.getPhone()); + int num = this.baseMapper.insert(comFmsService); + if (num > 0) { + ComFmsServiceRecord comFmsServiceRecord = new ComFmsServiceRecord(); + comFmsServiceRecord.setServiceId(comFmsService.getId()); + comFmsServiceRecord.setContent(adminDTO.getServiceContent()); + comFmsServiceRecord.setImage(adminDTO.getServiceImage()); + comFmsServiceRecord.setStage(ComFmsServiceRecord.Stage.TJFWSQ); + comFmsServiceRecord.setCreatedBy(userInfo.getUserId()); + comFmsServiceRecordDAO.insert(comFmsServiceRecord); + return R.ok(); + } + return R.fail("操作失败,请重新尝试"); + } + + /** + * 分页查询我的微服务 + * @param adminDTO + * @return + */ + @Override + public R pageMyFmsService(PageFmsServiceAppletsDTO adminDTO) { + Page page = new Page<>(); + page.setSize(adminDTO.getPageSize()); + page.setCurrent(adminDTO.getPageNum()); + IPage<ComFmsServiceVO> serviceVOIPage = this.baseMapper.pageMyFmsService(page, adminDTO); + List<ComFmsServiceVO> serviceVOList = serviceVOIPage.getRecords(); + if (!serviceVOList.isEmpty()) { + serviceVOList.forEach(e -> { + if (e.getServiceStatus().equals(ComFmsService.ServiceStatus.dpj)) { + Date autoEvaluateAt = DateUtils.addDay(e.getCreatedAt(), 3); + Date nowDate = new Date(); + e.setAutoEvaluateAt(autoEvaluateAt.getTime() - nowDate.getTime()); + } + }); + } + return R.ok(serviceVOList); + } + + /** + * 微团队成员分页查询服务处理 + * @param adminDTO + * @return + */ + @Override + public R pageDealFmsService(PageFmsServiceAppletsDTO adminDTO) { + Page page = new Page<>(); + page.setSize(adminDTO.getPageSize()); + page.setCurrent(adminDTO.getPageNum()); + LoginUserInfoVO userInfo = adminDTO.getUserInfo(); + ComFmsTeamMember comFmsTeamMember = comFmsTeamMemberDAO.selectOne(new LambdaQueryWrapper<ComFmsTeamMember>() + .eq(ComFmsTeamMember::getPhone, userInfo.getPhone()) + .eq(ComFmsTeamMember::getCommunityId, userInfo.getCommunityId())); + if (nonNull(comFmsTeamMember)) { + adminDTO.setMemberId(comFmsTeamMember.getId()); + } + return R.ok(this.baseMapper.pageDealFmsService(page, adminDTO)); + } + + /** + * 微团队成员服务反馈 + * @param adminDTO + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public R feedbackFmsService(FeedbackFmsServiceDTO adminDTO) { + ComFmsService comFmsService = this.baseMapper.selectById(adminDTO.getServiceId()); + if (isNull(comFmsService)) { + return R.fail("资源不存在"); + } + if (isNull(comFmsService.getMemberId())) { + return R.fail("还未分配服务人员"); + } + LoginUserInfoVO userInfo = adminDTO.getUserInfo(); + ComFmsTeamMember comFmsTeamMember = comFmsTeamMemberDAO.selectOne(new LambdaQueryWrapper<ComFmsTeamMember>() + .eq(ComFmsTeamMember::getPhone, userInfo.getPhone()) + .eq(ComFmsTeamMember::getCommunityId, userInfo.getCommunityId())); + if (isNull(comFmsTeamMember) || !comFmsService.getMemberId().equals(comFmsTeamMember.getId())) { + return R.fail("不是指定的分配服务人员"); + } + Boolean isEnd = adminDTO.getIsEnd(); + ComFmsServiceRecord comFmsServiceRecord = new ComFmsServiceRecord(); + comFmsServiceRecord.setServiceId(comFmsService.getId()); + comFmsServiceRecord.setContent(adminDTO.getFeedbackContent()); + comFmsServiceRecord.setImage(adminDTO.getImage()); + comFmsServiceRecord.setStage(isEnd ? ComFmsServiceRecord.Stage.WCFW : ComFmsServiceRecord.Stage.FWFK); + comFmsServiceRecord.setCreatedBy(adminDTO.getUserId()); + int num = comFmsServiceRecordDAO.insert(comFmsServiceRecord); + if (num > 0) { + if (isEnd) { + comFmsService.setServiceStatus(ComFmsService.ServiceStatus.dpj); + comFmsService.setServiceAt(new Date()); + this.baseMapper.updateById(comFmsService); + } + return R.ok(); + } + return R.fail("操作失败,请重新尝试"); + } + + /** + * 定时任务针对服务结束后3天还未评价的用户默认好评 + * @return + */ + @Override + public R defaultPraise() { + List<ComFmsService> fmsServiceList = this.baseMapper.selectList(new QueryWrapper<ComFmsService>().lambda() + .eq(ComFmsService::getServiceStatus, ComFmsService.ServiceStatus.dpj) + .le(ComFmsService::getServiceAt, DateUtils.addDay(new Date(), -3))); + if (!fmsServiceList.isEmpty()) { + List<ComFmsServiceEvaluations> evaluations = new ArrayList<>(); + fmsServiceList.forEach(e -> { + ComFmsServiceEvaluations evaluation = new ComFmsServiceEvaluations(); + evaluation.setServiceId(e.getId()); + evaluation.setStarLevel(5); + evaluation.setEvaluateContent("系统默认好评!"); + evaluation.setUserId(e.getUserId()); + evaluations.add(evaluation); + }); + int num = comFmsServiceEvaluationsDAO.insertBatch(evaluations); + if (num > 0) { + fmsServiceList.forEach(e -> e.setServiceStatus(ComFmsService.ServiceStatus.ywc)); + this.updateBatchById(fmsServiceList); + } + } + return R.ok(); + } +} -- Gitblit v1.7.1