From 49875151be4b427935fcb3d60696e99ba9d2e1ad Mon Sep 17 00:00:00 2001 From: kaiyu <404897439@qq.com> Date: Thu, 01 Jul 2021 16:58:03 +0800 Subject: [PATCH] screen-manage 添加根据组织id和地区码获取设备接口 --- screen-api/src/main/java/com/moral/api/exception/GlobalExceptionHandler.java | 10 + screen-api/src/main/java/com/moral/api/pojo/form/device/MonitorPointQueryForm.java | 30 +++ screen-api/src/main/java/com/moral/api/pojo/vo/device/DeviceVO.java | 37 +++ screen-api/src/main/java/com/moral/api/interceptor/WebInterceptor.java | 17 - screen-api/src/main/java/com/moral/api/controller/MonitorPointController.java | 53 +++++ screen-api/src/main/java/com/moral/api/service/impl/MonitorPointServiceImpl.java | 67 ++++++ screen-api/src/main/java/com/moral/api/entity/MonitorPoint.java | 108 ++++++++++ screen-api/src/main/java/com/moral/api/mapper/MonitorPointMapper.java | 16 + screen-api/src/main/java/com/moral/api/pojo/vo/alarm/AlarmLevelVO.java | 2 screen-api/src/main/java/com/moral/api/pojo/vo/monitorPoint/MonitorPointVO.java | 41 ++++ screen-api/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java | 16 + screen-api/src/main/java/com/moral/api/service/MonitorPointService.java | 28 ++ screen-api/src/main/java/com/moral/api/service/DeviceService.java | 4 screen-api/src/main/java/com/moral/api/service/OrganizationService.java | 10 + screen-api/src/main/java/com/moral/api/controller/AlarmController.java | 2 screen-api/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java | 38 +++ screen-api/src/main/java/com/moral/api/pojo/vo/monitorPoint/MonitorPointsVO.java | 52 +++++ screen-api/src/main/resources/mapper/MonitorPointMapper.xml | 22 ++ screen-api/src/main/java/com/moral/api/kafka/consumer/SecondDataConsumer.java | 4 19 files changed, 540 insertions(+), 17 deletions(-) diff --git a/screen-api/src/main/java/com/moral/api/controller/AlarmController.java b/screen-api/src/main/java/com/moral/api/controller/AlarmController.java index 889c653..a745ce8 100644 --- a/screen-api/src/main/java/com/moral/api/controller/AlarmController.java +++ b/screen-api/src/main/java/com/moral/api/controller/AlarmController.java @@ -33,7 +33,7 @@ OrganizationUnitAlarmService organizationUnitAlarmService; @GetMapping("queryAlarmByMac") - public ResultMessage queryByMac(String mac){ + public ResultMessage queryAlarmByMac(String mac){ List<Sensor> sensors = organizationUnitAlarmService.queryAlarmLevel(mac); AlarmLevelVO vo = AlarmLevelVO.convert(sensors); return new ResultMessage(ResponseCodeEnum.SUCCESS.getCode(), ResponseCodeEnum.SUCCESS.getMsg(), vo); diff --git a/screen-api/src/main/java/com/moral/api/controller/MonitorPointController.java b/screen-api/src/main/java/com/moral/api/controller/MonitorPointController.java new file mode 100644 index 0000000..8eb74e9 --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/controller/MonitorPointController.java @@ -0,0 +1,53 @@ +package com.moral.api.controller; + +import com.moral.api.entity.MonitorPoint; +import com.moral.api.pojo.form.device.MonitorPointQueryForm; +import com.moral.api.pojo.vo.monitorPoint.MonitorPointsVO; +import com.moral.api.service.MonitorPointService; +import com.moral.api.service.OrganizationService; +import com.moral.constant.ResponseCodeEnum; +import com.moral.constant.ResultMessage; +import io.swagger.annotations.Api; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @ClassName DeviceController + * @Description TODO + * @Author ��������� + * @Date 2021/7/1 9:24 + * @Version TODO + **/ +@Slf4j +@Api(tags = {"������������"}) +@RestController +@CrossOrigin(origins = "*", maxAge = 3600) +@RequestMapping("/monitorPoint") +public class MonitorPointController { + + @Autowired + MonitorPointService monitorPointService; + + @GetMapping("queryMonitorPoints") + public ResultMessage queryMonitorPointsAndDevices(MonitorPointQueryForm form){ + //������������������������ + if (!form.valid()) + return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), + ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); + //������������������ + List<MonitorPoint> monitorPoints = monitorPointService.query(form); + + //������������������ + MonitorPointsVO vo = MonitorPointsVO.convert(monitorPoints); + + return new ResultMessage(ResponseCodeEnum.SUCCESS.getCode(), ResponseCodeEnum.SUCCESS.getMsg(), vo); + } + + +} diff --git a/screen-api/src/main/java/com/moral/api/entity/MonitorPoint.java b/screen-api/src/main/java/com/moral/api/entity/MonitorPoint.java new file mode 100644 index 0000000..efbf0c8 --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/entity/MonitorPoint.java @@ -0,0 +1,108 @@ +package com.moral.api.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalDateTime; +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * <p> + * + * </p> + * + * @author moral + * @since 2021-07-01 + */ +@Data +@EqualsAndHashCode(callSuper = false) +public class MonitorPoint extends Model<MonitorPoint> { + + private static final long serialVersionUID = 1L; + + /** + * ������ + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + /** + * ��������� + */ + private String name; + + /** + * ������ + */ + private Double longitude; + + /** + * ������ + */ + private Double latitude; + + /** + * ��������� + */ + private Integer provinceCode; + + /** + * ��������������� + */ + private Integer cityCode; + + /** + * ���/���/��������� + */ + private Integer areaCode; + + /** + * ������������ + */ + private String address; + + /** + * ������id + */ + private Integer organizationId; + + /** + * ������������ + */ + private Date createTime; + + /** + * ������������ + */ + private Date updateTime; + + /** + * ��������������� + */ + private String isDelete; + + /** + * ������ + */ + @TableField(value = "`desc`") + private String desc; + + /* + * ������������ + * */ + @TableField(exist = false) + private List<Device> devices; + + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/screen-api/src/main/java/com/moral/api/exception/GlobalExceptionHandler.java b/screen-api/src/main/java/com/moral/api/exception/GlobalExceptionHandler.java index dd4bddf..4cd4759 100644 --- a/screen-api/src/main/java/com/moral/api/exception/GlobalExceptionHandler.java +++ b/screen-api/src/main/java/com/moral/api/exception/GlobalExceptionHandler.java @@ -3,6 +3,7 @@ import com.moral.constant.Constants; import com.moral.constant.ResponseCodeEnum; import com.moral.constant.ResultMessage; +import com.moral.exception.TokenException; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.ControllerAdvice; @@ -35,4 +36,13 @@ return ResultMessage.fail(ResponseCodeEnum.FAIL.getCode(), "������������������������"); } + /** + * ������TokenException������ + */ + @ExceptionHandler({TokenException.class}) + @ResponseBody + @ResponseStatus(HttpStatus.OK) + public ResultMessage handleTokenException(TokenException ex) { + return ResultMessage.fail(ex.getCode(),ex.getMsg()); + } } diff --git a/screen-api/src/main/java/com/moral/api/interceptor/WebInterceptor.java b/screen-api/src/main/java/com/moral/api/interceptor/WebInterceptor.java index 90feb05..b0d6ed1 100644 --- a/screen-api/src/main/java/com/moral/api/interceptor/WebInterceptor.java +++ b/screen-api/src/main/java/com/moral/api/interceptor/WebInterceptor.java @@ -14,21 +14,12 @@ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { - if (!(handler instanceof HandlerMethod)) { + /*if (!(handler instanceof HandlerMethod)) { return true; - } + }*/ String token = request.getHeader("token"); - if (token == null) { - return false; - } - try { - //������token - TokenUtils.checkToken(token); - //������token - TokenUtils.extendTokenTime(token); - } catch (Exception e) { - return false; - } + TokenUtils.checkToken(token); + //TokenUtils.extendTokenTime(token); return true; } } diff --git a/screen-api/src/main/java/com/moral/api/kafka/consumer/SecondDataConsumer.java b/screen-api/src/main/java/com/moral/api/kafka/consumer/SecondDataConsumer.java index 54fab17..b6d2030 100644 --- a/screen-api/src/main/java/com/moral/api/kafka/consumer/SecondDataConsumer.java +++ b/screen-api/src/main/java/com/moral/api/kafka/consumer/SecondDataConsumer.java @@ -26,13 +26,13 @@ public void listen(ConsumerRecord<String, String> record , Consumer consumer) throws Exception { String messageStr = record.value(); Map<String,String> message = (Map<String,String>)JSON.parse(messageStr); - System.out.println(message); + //System.out.println(message); CopyOnWriteArraySet<SingleDeviceServer> sockets = SingleDeviceServer.sockets; for (SingleDeviceServer socket : sockets) { //���������������������������socket socket.sendMessage(message.toString()); } - System.out.println(message); + // System.out.println(message); } @Override diff --git a/screen-api/src/main/java/com/moral/api/mapper/MonitorPointMapper.java b/screen-api/src/main/java/com/moral/api/mapper/MonitorPointMapper.java new file mode 100644 index 0000000..9aa6d24 --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/mapper/MonitorPointMapper.java @@ -0,0 +1,16 @@ +package com.moral.api.mapper; + +import com.moral.api.entity.MonitorPoint; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * <p> + * Mapper ������ + * </p> + * + * @author moral + * @since 2021-07-01 + */ +public interface MonitorPointMapper extends BaseMapper<MonitorPoint> { + +} diff --git a/screen-api/src/main/java/com/moral/api/pojo/form/device/MonitorPointQueryForm.java b/screen-api/src/main/java/com/moral/api/pojo/form/device/MonitorPointQueryForm.java new file mode 100644 index 0000000..2ae2790 --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/pojo/form/device/MonitorPointQueryForm.java @@ -0,0 +1,30 @@ +package com.moral.api.pojo.form.device; + +import lombok.Data; +import org.springframework.util.ObjectUtils; + +/** + * @ClassName QueryMonitorPointsAndDevicesForm + * @Description TODO + * @Author ��������� + * @Date 2021/7/1 11:55 + * @Version TODO + **/ +@Data +public class MonitorPointQueryForm { + /* + * ������id + * */ + Integer organizationId; + + /* + * ������code + * */ + Integer regionCode; + + public boolean valid(){ + if(ObjectUtils.isEmpty(organizationId)||ObjectUtils.isEmpty(regionCode)) + return false; + return true; + } +} diff --git a/screen-api/src/main/java/com/moral/api/pojo/vo/alarm/AlarmLevelVO.java b/screen-api/src/main/java/com/moral/api/pojo/vo/alarm/AlarmLevelVO.java index b1e2481..821f0a8 100644 --- a/screen-api/src/main/java/com/moral/api/pojo/vo/alarm/AlarmLevelVO.java +++ b/screen-api/src/main/java/com/moral/api/pojo/vo/alarm/AlarmLevelVO.java @@ -1,5 +1,6 @@ package com.moral.api.pojo.vo.alarm; +import com.fasterxml.jackson.annotation.JsonInclude; import com.moral.api.entity.Sensor; import lombok.Data; @@ -15,6 +16,7 @@ * @Version TODO **/ @Data +@JsonInclude(JsonInclude.Include.NON_EMPTY) public class AlarmLevelVO { private Map<String,String> alarmLevel; diff --git a/screen-api/src/main/java/com/moral/api/pojo/vo/device/DeviceVO.java b/screen-api/src/main/java/com/moral/api/pojo/vo/device/DeviceVO.java new file mode 100644 index 0000000..4032f97 --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/pojo/vo/device/DeviceVO.java @@ -0,0 +1,37 @@ +package com.moral.api.pojo.vo.device; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +/** + * @ClassName DeviceVO + * @Description TODO + * @Author ��������� + * @Date 2021/7/1 14:18 + * @Version TODO + **/ +@Data +@JsonInclude(JsonInclude.Include.NON_EMPTY) +public class DeviceVO { + + private Integer id; + + private Integer monitorPointId; + + private Integer organizationId; + + private Integer versionId; + + private String name; + + private String mac; + + private String address; + + private Double longitude; + + private Double latitude; + + private String state; + +} diff --git a/screen-api/src/main/java/com/moral/api/pojo/vo/monitorPoint/MonitorPointVO.java b/screen-api/src/main/java/com/moral/api/pojo/vo/monitorPoint/MonitorPointVO.java new file mode 100644 index 0000000..26e9236 --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/pojo/vo/monitorPoint/MonitorPointVO.java @@ -0,0 +1,41 @@ +package com.moral.api.pojo.vo.monitorPoint; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.moral.api.pojo.vo.device.DeviceVO; +import lombok.Data; + +import java.util.List; + +/** + * @ClassName MonitorPointVO + * @Description TODO + * @Author ��������� + * @Date 2021/7/1 14:28 + * @Version TODO + **/ +@Data +@JsonInclude(JsonInclude.Include.NON_EMPTY) +public class MonitorPointVO { + + private Integer id; + + private Integer organizationId; + + private String name; + + private Double longitude; + + private Double latitude; + + private String state; + + private Integer provinceCode; + + private Integer cityCode; + + private Integer areaCode; + + private String address; + + private List<DeviceVO> devices; +} diff --git a/screen-api/src/main/java/com/moral/api/pojo/vo/monitorPoint/MonitorPointsVO.java b/screen-api/src/main/java/com/moral/api/pojo/vo/monitorPoint/MonitorPointsVO.java new file mode 100644 index 0000000..9f0d036 --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/pojo/vo/monitorPoint/MonitorPointsVO.java @@ -0,0 +1,52 @@ +package com.moral.api.pojo.vo.monitorPoint; + +import com.moral.api.entity.Device; +import com.moral.api.entity.MonitorPoint; +import com.moral.api.pojo.vo.device.DeviceVO; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @ClassName MonitorPointsVO + * @Description TODO + * @Author ��������� + * @Date 2021/7/1 14:33 + * @Version TODO + **/ +@Data +public class MonitorPointsVO { + + private List<MonitorPointVO> monitorPoints; + + public static MonitorPointsVO convert(List<MonitorPoint> monitorPoints){ + MonitorPointsVO monitorPointsVO = new MonitorPointsVO(); + List<MonitorPointVO> monitorPointVOS = new ArrayList<>(); + for (MonitorPoint monitorPoint : monitorPoints) { + MonitorPointVO monitorPointVO = new MonitorPointVO(); + List<Device> devices = monitorPoint.getDevices(); + List<DeviceVO> deviceVOS = new ArrayList<>(); + for (Device device : devices) { + DeviceVO deviceVO = deviceConvert(device); + deviceVOS.add(deviceVO); + } + monitorPointVO.setName(monitorPoint.getName()); + monitorPointVO.setLatitude(monitorPoint.getLatitude()); + monitorPointVO.setLongitude(monitorPoint.getLongitude()); + monitorPointVO.setDevices(deviceVOS); + monitorPointVOS.add(monitorPointVO); + } + monitorPointsVO.setMonitorPoints(monitorPointVOS); + return monitorPointsVO; + } + + private static DeviceVO deviceConvert(Device device){ + DeviceVO vo = new DeviceVO(); + vo.setName(device.getName()); + vo.setMac(device.getMac()); + vo.setLatitude(device.getLatitude()); + vo.setLongitude(device.getLongitude()); + return vo; + } +} diff --git a/screen-api/src/main/java/com/moral/api/service/DeviceService.java b/screen-api/src/main/java/com/moral/api/service/DeviceService.java index 2a674b4..53d8109 100644 --- a/screen-api/src/main/java/com/moral/api/service/DeviceService.java +++ b/screen-api/src/main/java/com/moral/api/service/DeviceService.java @@ -3,6 +3,8 @@ import com.moral.api.entity.Device; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + /** * <p> * ��������� ��������� @@ -12,5 +14,5 @@ * @since 2021-06-28 */ public interface DeviceService extends IService<Device> { - + List<Device> getDevicesByMonitorPointId(Integer monitorPointId); } diff --git a/screen-api/src/main/java/com/moral/api/service/MonitorPointService.java b/screen-api/src/main/java/com/moral/api/service/MonitorPointService.java new file mode 100644 index 0000000..0a2b9ef --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/service/MonitorPointService.java @@ -0,0 +1,28 @@ +package com.moral.api.service; + +import com.moral.api.entity.MonitorPoint; +import com.baomidou.mybatisplus.extension.service.IService; +import com.moral.api.pojo.form.device.MonitorPointQueryForm; + +import java.util.List; + +/** + * <p> + * ��������� + * </p> + * + * @author moral + * @since 2021-07-01 + */ +public interface MonitorPointService extends IService<MonitorPoint> { + + /** + * @Description: ������������id��������������������������������� + * @Param: [form] + * @return: java.util.List<com.moral.api.entity.MonitorPoint> + * @Author: ��������� + * @Date: 2021/7/1 + */ + List<MonitorPoint> query(MonitorPointQueryForm form); +} + diff --git a/screen-api/src/main/java/com/moral/api/service/OrganizationService.java b/screen-api/src/main/java/com/moral/api/service/OrganizationService.java index ce292e1..03555b0 100644 --- a/screen-api/src/main/java/com/moral/api/service/OrganizationService.java +++ b/screen-api/src/main/java/com/moral/api/service/OrganizationService.java @@ -3,6 +3,8 @@ import com.moral.api.entity.Organization; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + /** * <p> * ��������� ��������� @@ -13,4 +15,12 @@ */ public interface OrganizationService extends IService<Organization> { + /** + * @Description: ������������������������������ + * @Param: [id] + * @return: java.util.List<com.moral.api.entity.Organization> + * @Author: ��������� + * @Date: 2021/7/1 + */ + List<Organization> getChildrenOrganizationsById(Integer id); } diff --git a/screen-api/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java index db46dc3..e103c8c 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java +++ b/screen-api/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java @@ -1,10 +1,15 @@ package com.moral.api.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.moral.api.entity.Device; import com.moral.api.mapper.DeviceMapper; import com.moral.api.service.DeviceService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.moral.constant.Constants; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + +import java.util.List; /** * <p> @@ -17,4 +22,15 @@ @Service public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> implements DeviceService { + @Autowired + DeviceMapper deviceMapper; + + @Override + public List<Device> getDevicesByMonitorPointId(Integer monitorPointId) { + QueryWrapper<Device> wrapper = new QueryWrapper(); + wrapper.eq("is_delete", Constants.NOT_DELETE); + wrapper.eq("monitor_point_id",monitorPointId); + List<Device> devices = deviceMapper.selectList(wrapper); + return devices; + } } diff --git a/screen-api/src/main/java/com/moral/api/service/impl/MonitorPointServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/MonitorPointServiceImpl.java new file mode 100644 index 0000000..1b54467 --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/service/impl/MonitorPointServiceImpl.java @@ -0,0 +1,67 @@ +package com.moral.api.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.moral.api.entity.Device; +import com.moral.api.entity.MonitorPoint; +import com.moral.api.entity.Organization; +import com.moral.api.mapper.MonitorPointMapper; +import com.moral.api.pojo.form.device.MonitorPointQueryForm; +import com.moral.api.service.DeviceService; +import com.moral.api.service.MonitorPointService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.moral.api.service.OrganizationService; +import com.moral.constant.Constants; +import com.moral.util.RegionCodeUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +/** + * <p> + * ��������������� + * </p> + * + * @author moral + * @since 2021-07-01 + */ +@Service +public class MonitorPointServiceImpl extends ServiceImpl<MonitorPointMapper, MonitorPoint> implements MonitorPointService { + + @Autowired + MonitorPointMapper monitorPointMapper; + @Autowired + OrganizationService organizationService; + @Autowired + DeviceService deviceService; + + @Override + public List<MonitorPoint> query(MonitorPointQueryForm form) { + //������ + Integer organizationId = form.getOrganizationId(); + Integer regionCode = form.getRegionCode(); + String region = RegionCodeUtils.regionCodeConvertToName(regionCode); + //��������������� + List<Organization> childrenOrganization = organizationService.getChildrenOrganizationsById(organizationId); + List<Integer> organizationIds = new ArrayList<>(); + for (Organization organization : childrenOrganization) { + organizationIds.add(organization.getId()); + } + organizationIds.add(organizationId); + //������������ + QueryWrapper<MonitorPoint> queryMonitorPointsWrapper = new QueryWrapper<>(); + queryMonitorPointsWrapper.eq(region,regionCode); + queryMonitorPointsWrapper.in("organization_id",organizationIds); + queryMonitorPointsWrapper.eq("is_delete", Constants.NOT_DELETE); + List<MonitorPoint> monitorPoints = monitorPointMapper.selectList(queryMonitorPointsWrapper); + //��������������������������� + for (MonitorPoint monitorPoint : monitorPoints) { + List<Device> devices = deviceService.getDevicesByMonitorPointId(monitorPoint.getId()); + monitorPoint.setDevices(devices); + } + return monitorPoints; + } +} + + diff --git a/screen-api/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java index d612dff..f407aa4 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java +++ b/screen-api/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java @@ -1,10 +1,17 @@ package com.moral.api.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.moral.api.entity.Organization; import com.moral.api.mapper.OrganizationMapper; import com.moral.api.service.OrganizationService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.moral.constant.Constants; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; + +import java.util.ArrayList; +import java.util.List; /** * <p> @@ -17,4 +24,35 @@ @Service public class OrganizationServiceImpl extends ServiceImpl<OrganizationMapper, Organization> implements OrganizationService { + @Autowired + OrganizationMapper organizationMapper; + + @Override + public List<Organization> getChildrenOrganizationsById(Integer id) { + List<Organization> childrenOrganization = new ArrayList<>(); + recursionQueryChildren(id,childrenOrganization); + return childrenOrganization; + } + + /** + * @Description: ���������������������������������������������������children��� + * @Param: [parentId, children] + * @return: void + * @Author: ��������� + * @Date: 2021/7/1 + */ + private void recursionQueryChildren(Integer parentId, List<Organization> children) { + QueryWrapper<Organization> queryWrapper = new QueryWrapper(); + queryWrapper.eq("is_delete", Constants.NOT_DELETE); + queryWrapper.eq("parent_id", parentId); + List<Organization> organizations = organizationMapper.selectList(queryWrapper); + if (!ObjectUtils.isEmpty(organizations)) { + children.addAll(organizations); + for (Organization organization : organizations) { + recursionQueryChildren(organization.getId(), children); + } + } else { + return; + } + } } diff --git a/screen-api/src/main/resources/mapper/MonitorPointMapper.xml b/screen-api/src/main/resources/mapper/MonitorPointMapper.xml new file mode 100644 index 0000000..5e9c800 --- /dev/null +++ b/screen-api/src/main/resources/mapper/MonitorPointMapper.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.moral.api.mapper.MonitorPointMapper"> + + <!-- ������������������������ --> + <resultMap id="BaseResultMap" type="com.moral.api.entity.MonitorPoint"> + <id column="id" property="id" /> + <result column="name" property="name" /> + <result column="longitude" property="longitude" /> + <result column="latitude" property="latitude" /> + <result column="province_code" property="provinceCode" /> + <result column="city_code" property="cityCode" /> + <result column="area_code" property="areaCode" /> + <result column="address" property="address" /> + <result column="organization_id" property="organizationId" /> + <result column="create_time" property="createTime" /> + <result column="update_time" property="updateTime" /> + <result column="is_delete" property="isDelete" /> + <result column="desc" property="desc" /> + </resultMap> + +</mapper> \ No newline at end of file -- Gitblit v1.8.0