New file |
| | |
| | | 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(); |
| | | } |
| | | } |