| | |
| | | package com.panzhihua.sangeshenbian.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.netflix.servo.monitor.LongGauge; |
| | | import com.panzhihua.common.exceptions.ServiceException; |
| | | import com.panzhihua.common.model.vos.LoginUserInfoVO; |
| | | import com.panzhihua.common.model.vos.R; |
| | | import com.panzhihua.common.service.user.UserService; |
| | | import com.panzhihua.sangeshenbian.enums.ReportTypeEnum; |
| | | import com.panzhihua.sangeshenbian.model.entity.*; |
| | | import com.panzhihua.sangeshenbian.dao.ComplaintFlowMapper; |
| | |
| | | * @since 2025-02-22 |
| | | */ |
| | | @Service |
| | | @RequiredArgsConstructor |
| | | @RequiredArgsConstructor(onConstructor_ = {@Lazy}) |
| | | public class ComplaintFlowServiceImpl extends ServiceImpl<ComplaintFlowMapper, ComplaintFlow> implements IComplaintFlowService { |
| | | @Lazy |
| | | @Resource |
| | | private IComplaintService complaintService; |
| | | private final IComplaintService complaintService; |
| | | private final IBcRegionService bcRegionService; |
| | | private final IComStreetService comStreetService; |
| | | private final IComActService comActService; |
| | | |
| | | |
| | | private final UserService userService; |
| | | |
| | | @Override |
| | | public void createFlow(Long complaintId , Integer type, Long userId) { |
| | | public void createFlow(Long complaintId , Long superiorId, Integer reportType, Integer type, Long userId) { |
| | | |
| | | Complaint complaint = complaintService.getById(complaintId); |
| | | Integer reportType = complaint.getReportType(); |
| | | |
| | | String name = getFlowName(reportType, complaint); |
| | | String name = getFlowName(reportType, superiorId); |
| | | |
| | | ComplaintFlow complaintFlow = new ComplaintFlow(); |
| | | complaintFlow.setComplaintId(complaintId); |
| | |
| | | save(complaintFlow); |
| | | } |
| | | |
| | | private String getFlowName(Integer reportType, Complaint complaint) { |
| | | private String getFlowName(Integer reportType, Long superiorId) { |
| | | String name; |
| | | if (reportType == ReportTypeEnum.COMMUNITY.getCode()) { |
| | | ComAct byId = comActService.getById(complaint.getSuperiorId()); |
| | | ComAct byId = comActService.getById(superiorId); |
| | | name = byId.getName(); |
| | | }else if (reportType == ReportTypeEnum.STREET.getCode()) { |
| | | ComStreet comStreet = comStreetService.getById(complaint.getSuperiorId()); |
| | | ComStreet comStreet = comStreetService.getById(superiorId); |
| | | name = comStreet.getName(); |
| | | } else if (reportType == ReportTypeEnum.CITY.getCode() || reportType == ReportTypeEnum.DISTRICT.getCode()){ |
| | | BcRegion bcRegion = bcRegionService.getOne(new LambdaQueryWrapper<BcRegion>() |
| | | .eq(BcRegion::getRegionCode, complaint.getSuperiorId())); |
| | | .eq(BcRegion::getRegionCode, superiorId)); |
| | | name = bcRegion.getRegionName(); |
| | | } else { |
| | | // 处理未预期的账号等级 |
| | | throw new ServiceException("未知的账号等级"); |
| | | R<LoginUserInfoVO> userR = userService.getUserInfoByUserId(String.valueOf(superiorId)); |
| | | if (R.isOk(userR)) { |
| | | throw new ServiceException("获取用户信息失败"); |
| | | } |
| | | name = userR.getData().getNickName(); |
| | | } |
| | | return name; |
| | | } |