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