报警统计相关接口
parent
a0d2ac0215
commit
2e8c7daea6
|
|
@ -0,0 +1,38 @@
|
||||||
|
package com.zcloud.gbs.edgeguard.web;
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.PageResponse;
|
||||||
|
import com.zcloud.gbs.edgeguard.api.AlarmStatisticServiceI;
|
||||||
|
import com.zcloud.gbs.edgeguard.dto.AlarmCorpStatisticQry;
|
||||||
|
import com.zcloud.gbs.edgeguard.dto.AlarmRegionStatisticQry;
|
||||||
|
import com.zcloud.gbs.edgeguard.dto.clientobject.AlarmCorpStatisticCo;
|
||||||
|
import com.zcloud.gbs.edgeguard.dto.clientobject.AlarmRegionStatisticCo;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
@Api(tags = "报警统计")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/edgeguard/alarm-statistics")
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class AlarmStatisticController {
|
||||||
|
private final AlarmStatisticServiceI statisticService;
|
||||||
|
|
||||||
|
@ApiOperation("按企业统计报警")
|
||||||
|
@PostMapping("/corporations")
|
||||||
|
public PageResponse<AlarmCorpStatisticCo> corporations(
|
||||||
|
@Validated @RequestBody AlarmCorpStatisticQry qry) {
|
||||||
|
return statisticService.corporations(qry);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation("按区域统计报警")
|
||||||
|
@PostMapping("/regions")
|
||||||
|
public PageResponse<AlarmRegionStatisticCo> regions(
|
||||||
|
@Validated @RequestBody AlarmRegionStatisticQry qry) {
|
||||||
|
return statisticService.regions(qry);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,81 @@
|
||||||
|
package com.zcloud.gbs.edgeguard.command.query;
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.PageResponse;
|
||||||
|
import com.zcloud.gbs.edgeguard.command.RegionAccessService;
|
||||||
|
import com.zcloud.gbs.edgeguard.domain.gateway.AlarmStatisticGateway;
|
||||||
|
import com.zcloud.gbs.edgeguard.domain.model.AlarmStatisticE;
|
||||||
|
import com.zcloud.gbs.edgeguard.domain.model.CorpE;
|
||||||
|
import com.zcloud.gbs.edgeguard.dto.AlarmCorpStatisticQry;
|
||||||
|
import com.zcloud.gbs.edgeguard.dto.AlarmRegionStatisticQry;
|
||||||
|
import com.zcloud.gbs.edgeguard.dto.clientobject.AlarmCorpStatisticCo;
|
||||||
|
import com.zcloud.gbs.edgeguard.dto.clientobject.AlarmRegionStatisticCo;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.function.Function;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class AlarmStatisticQueryExe {
|
||||||
|
private final AlarmStatisticGateway statisticGateway;
|
||||||
|
private final RegionAccessService accessService;
|
||||||
|
|
||||||
|
public PageResponse<AlarmCorpStatisticCo> corporations(AlarmCorpStatisticQry qry) {
|
||||||
|
List<CorpE> accessibleCorps = accessService.accessibleCorps();
|
||||||
|
if (qry.getCorpId() != null) {
|
||||||
|
CorpE corp = accessService.requireAccessibleCorp(qry.getCorpId());
|
||||||
|
accessibleCorps = Collections.singletonList(corp);
|
||||||
|
}
|
||||||
|
if (accessibleCorps.isEmpty()) {
|
||||||
|
return PageResponse.of(Collections.emptyList(), 0, pageSize(qry.getPageSize()), pageIndex(qry.getPageIndex()));
|
||||||
|
}
|
||||||
|
Map<Long, CorpE> corpMap = accessibleCorps.stream()
|
||||||
|
.collect(Collectors.toMap(CorpE::getId, Function.identity()));
|
||||||
|
List<Long> corpIds = accessibleCorps.stream().map(CorpE::getId).collect(Collectors.toList());
|
||||||
|
int pageIndex = pageIndex(qry.getPageIndex());
|
||||||
|
int pageSize = pageSize(qry.getPageSize());
|
||||||
|
List<AlarmCorpStatisticCo> records = statisticGateway.pageByCorp(
|
||||||
|
corpIds, qry.getAlarmTimeStart(), qry.getAlarmTimeEnd(), (pageIndex - 1) * pageSize, pageSize)
|
||||||
|
.stream().map(row -> toCorpCo(row, corpMap.get(row.getCorpId()))).collect(Collectors.toList());
|
||||||
|
long total = statisticGateway.countCorp(corpIds, qry.getAlarmTimeStart(), qry.getAlarmTimeEnd());
|
||||||
|
return PageResponse.of(records, Math.toIntExact(total), pageSize, pageIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PageResponse<AlarmRegionStatisticCo> regions(AlarmRegionStatisticQry qry) {
|
||||||
|
accessService.requireAccessibleCorp(qry.getCorpId());
|
||||||
|
int pageIndex = pageIndex(qry.getPageIndex());
|
||||||
|
int pageSize = pageSize(qry.getPageSize());
|
||||||
|
List<AlarmRegionStatisticCo> records = statisticGateway.pageByRegion(
|
||||||
|
qry.getCorpId(), qry.getRegionName(), qry.getAlarmTimeStart(), qry.getAlarmTimeEnd(),
|
||||||
|
(pageIndex - 1) * pageSize, pageSize)
|
||||||
|
.stream().map(this::toRegionCo).collect(Collectors.toList());
|
||||||
|
long total = statisticGateway.countRegion(qry.getCorpId(), qry.getRegionName());
|
||||||
|
return PageResponse.of(records, Math.toIntExact(total), pageSize, pageIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
private AlarmCorpStatisticCo toCorpCo(AlarmStatisticE source, CorpE corp) {
|
||||||
|
AlarmCorpStatisticCo target = new AlarmCorpStatisticCo();
|
||||||
|
BeanUtils.copyProperties(source, target);
|
||||||
|
target.setCorpName(corp == null ? null : corp.getCorpName());
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
|
||||||
|
private AlarmRegionStatisticCo toRegionCo(AlarmStatisticE source) {
|
||||||
|
AlarmRegionStatisticCo target = new AlarmRegionStatisticCo();
|
||||||
|
BeanUtils.copyProperties(source, target);
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
|
||||||
|
private int pageIndex(int pageIndex) {
|
||||||
|
return pageIndex <= 0 ? 1 : pageIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
private int pageSize(int pageSize) {
|
||||||
|
return pageSize <= 0 ? 10 : Math.min(pageSize, 200);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
package com.zcloud.gbs.edgeguard.service;
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.PageResponse;
|
||||||
|
import com.zcloud.gbs.edgeguard.api.AlarmStatisticServiceI;
|
||||||
|
import com.zcloud.gbs.edgeguard.command.query.AlarmStatisticQueryExe;
|
||||||
|
import com.zcloud.gbs.edgeguard.dto.AlarmCorpStatisticQry;
|
||||||
|
import com.zcloud.gbs.edgeguard.dto.AlarmRegionStatisticQry;
|
||||||
|
import com.zcloud.gbs.edgeguard.dto.clientobject.AlarmCorpStatisticCo;
|
||||||
|
import com.zcloud.gbs.edgeguard.dto.clientobject.AlarmRegionStatisticCo;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class AlarmStatisticServiceImpl implements AlarmStatisticServiceI {
|
||||||
|
private final AlarmStatisticQueryExe queryExe;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResponse<AlarmCorpStatisticCo> corporations(AlarmCorpStatisticQry qry) {
|
||||||
|
return queryExe.corporations(qry);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResponse<AlarmRegionStatisticCo> regions(AlarmRegionStatisticQry qry) {
|
||||||
|
return queryExe.regions(qry);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
package com.zcloud.gbs.edgeguard.api;
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.PageResponse;
|
||||||
|
import com.zcloud.gbs.edgeguard.dto.AlarmCorpStatisticQry;
|
||||||
|
import com.zcloud.gbs.edgeguard.dto.AlarmRegionStatisticQry;
|
||||||
|
import com.zcloud.gbs.edgeguard.dto.clientobject.AlarmCorpStatisticCo;
|
||||||
|
import com.zcloud.gbs.edgeguard.dto.clientobject.AlarmRegionStatisticCo;
|
||||||
|
|
||||||
|
public interface AlarmStatisticServiceI {
|
||||||
|
PageResponse<AlarmCorpStatisticCo> corporations(AlarmCorpStatisticQry qry);
|
||||||
|
|
||||||
|
PageResponse<AlarmRegionStatisticCo> regions(AlarmRegionStatisticQry qry);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
package com.zcloud.gbs.edgeguard.dto;
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.PageQuery;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
public class AlarmCorpStatisticQry extends PageQuery {
|
||||||
|
private Long corpId;
|
||||||
|
private Date alarmTimeStart;
|
||||||
|
private Date alarmTimeEnd;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
package com.zcloud.gbs.edgeguard.dto;
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.PageQuery;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
public class AlarmRegionStatisticQry extends PageQuery {
|
||||||
|
@NotNull(message = "企业ID不能为空")
|
||||||
|
private Long corpId;
|
||||||
|
private String regionName;
|
||||||
|
private Date alarmTimeStart;
|
||||||
|
private Date alarmTimeEnd;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
package com.zcloud.gbs.edgeguard.dto.clientobject;
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.ClientObject;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class AlarmCorpStatisticCo extends ClientObject {
|
||||||
|
private Long corpId;
|
||||||
|
private String corpName;
|
||||||
|
private Long totalCount;
|
||||||
|
private Long pendingCount;
|
||||||
|
private Long hiddenHandlingCount;
|
||||||
|
private Long disposedCount;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
package com.zcloud.gbs.edgeguard.dto.clientobject;
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.ClientObject;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class AlarmRegionStatisticCo extends ClientObject {
|
||||||
|
private Long regionId;
|
||||||
|
private String regionCode;
|
||||||
|
private String regionName;
|
||||||
|
private Long corpId;
|
||||||
|
private Long totalCount;
|
||||||
|
private Long pendingCount;
|
||||||
|
private Long hiddenHandlingCount;
|
||||||
|
private Long disposedCount;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
package com.zcloud.gbs.edgeguard.domain.gateway;
|
||||||
|
|
||||||
|
import com.zcloud.gbs.edgeguard.domain.model.AlarmStatisticE;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface AlarmStatisticGateway {
|
||||||
|
List<AlarmStatisticE> pageByCorp(Collection<Long> corpIds, Date start, Date end, int offset, int pageSize);
|
||||||
|
|
||||||
|
long countCorp(Collection<Long> corpIds, Date start, Date end);
|
||||||
|
|
||||||
|
List<AlarmStatisticE> pageByRegion(Long corpId, String regionName, Date start, Date end,
|
||||||
|
int offset, int pageSize);
|
||||||
|
|
||||||
|
long countRegion(Long corpId, String regionName);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
package com.zcloud.gbs.edgeguard.domain.model;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class AlarmStatisticE {
|
||||||
|
private Long corpId;
|
||||||
|
private Long regionId;
|
||||||
|
private String regionCode;
|
||||||
|
private String regionName;
|
||||||
|
private Long totalCount;
|
||||||
|
private Long pendingCount;
|
||||||
|
private Long hiddenHandlingCount;
|
||||||
|
private Long disposedCount;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,38 @@
|
||||||
|
package com.zcloud.gbs.edgeguard.gatewayimpl;
|
||||||
|
|
||||||
|
import com.zcloud.gbs.edgeguard.domain.gateway.AlarmStatisticGateway;
|
||||||
|
import com.zcloud.gbs.edgeguard.domain.model.AlarmStatisticE;
|
||||||
|
import com.zcloud.gbs.edgeguard.persistence.mapper.AlarmMapper;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class AlarmStatisticGatewayImpl implements AlarmStatisticGateway {
|
||||||
|
private final AlarmMapper alarmMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<AlarmStatisticE> pageByCorp(Collection<Long> corpIds, Date start, Date end, int offset, int pageSize) {
|
||||||
|
return alarmMapper.pageStatisticByCorp(corpIds, start, end, offset, pageSize);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long countCorp(Collection<Long> corpIds, Date start, Date end) {
|
||||||
|
return alarmMapper.countStatisticCorp(corpIds, start, end);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<AlarmStatisticE> pageByRegion(Long corpId, String regionName, Date start, Date end,
|
||||||
|
int offset, int pageSize) {
|
||||||
|
return alarmMapper.pageStatisticByRegion(corpId, regionName, start, end, offset, pageSize);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long countRegion(Long corpId, String regionName) {
|
||||||
|
return alarmMapper.countStatisticRegion(corpId, regionName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -2,6 +2,31 @@ package com.zcloud.gbs.edgeguard.persistence.mapper;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.zcloud.gbs.edgeguard.persistence.dataobject.AlarmDO;
|
import com.zcloud.gbs.edgeguard.persistence.dataobject.AlarmDO;
|
||||||
|
import com.zcloud.gbs.edgeguard.domain.model.AlarmStatisticE;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public interface AlarmMapper extends BaseMapper<AlarmDO> {
|
public interface AlarmMapper extends BaseMapper<AlarmDO> {
|
||||||
|
List<AlarmStatisticE> pageStatisticByCorp(@Param("corpIds") Collection<Long> corpIds,
|
||||||
|
@Param("start") Date start,
|
||||||
|
@Param("end") Date end,
|
||||||
|
@Param("offset") int offset,
|
||||||
|
@Param("pageSize") int pageSize);
|
||||||
|
|
||||||
|
long countStatisticCorp(@Param("corpIds") Collection<Long> corpIds,
|
||||||
|
@Param("start") Date start,
|
||||||
|
@Param("end") Date end);
|
||||||
|
|
||||||
|
List<AlarmStatisticE> pageStatisticByRegion(@Param("corpId") Long corpId,
|
||||||
|
@Param("regionName") String regionName,
|
||||||
|
@Param("start") Date start,
|
||||||
|
@Param("end") Date end,
|
||||||
|
@Param("offset") int offset,
|
||||||
|
@Param("pageSize") int pageSize);
|
||||||
|
|
||||||
|
long countStatisticRegion(@Param("corpId") Long corpId,
|
||||||
|
@Param("regionName") String regionName);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,69 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?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">
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.zcloud.gbs.edgeguard.persistence.mapper.AlarmMapper">
|
<mapper namespace="com.zcloud.gbs.edgeguard.persistence.mapper.AlarmMapper">
|
||||||
|
<sql id="alarmTimeCondition">
|
||||||
|
<if test="start != null">AND alarm_time <![CDATA[>=]]> #{start}</if>
|
||||||
|
<if test="end != null">AND alarm_time <![CDATA[<=]]> #{end}</if>
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<select id="pageStatisticByCorp" resultType="com.zcloud.gbs.edgeguard.domain.model.AlarmStatisticE">
|
||||||
|
SELECT corp_id AS corpId,
|
||||||
|
COUNT(*) AS totalCount,
|
||||||
|
SUM(disposal_status = 'PENDING') AS pendingCount,
|
||||||
|
SUM(disposal_status = 'HIDDEN_HANDLING') AS hiddenHandlingCount,
|
||||||
|
SUM(disposal_status = 'DISPOSED') AS disposedCount
|
||||||
|
FROM edgeguard_alarm
|
||||||
|
WHERE COALESCE(delete_enum, 'false') != 'true'
|
||||||
|
AND corp_id IN
|
||||||
|
<foreach collection="corpIds" item="corpId" open="(" separator="," close=")">#{corpId}</foreach>
|
||||||
|
<include refid="alarmTimeCondition"/>
|
||||||
|
GROUP BY corp_id
|
||||||
|
ORDER BY corp_id
|
||||||
|
LIMIT #{offset}, #{pageSize}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="countStatisticCorp" resultType="long">
|
||||||
|
SELECT COUNT(DISTINCT corp_id)
|
||||||
|
FROM edgeguard_alarm
|
||||||
|
WHERE COALESCE(delete_enum, 'false') != 'true'
|
||||||
|
AND corp_id IN
|
||||||
|
<foreach collection="corpIds" item="corpId" open="(" separator="," close=")">#{corpId}</foreach>
|
||||||
|
<include refid="alarmTimeCondition"/>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="pageStatisticByRegion" resultType="com.zcloud.gbs.edgeguard.domain.model.AlarmStatisticE">
|
||||||
|
SELECT region.id AS regionId,
|
||||||
|
region.region_code AS regionCode,
|
||||||
|
region.region_name AS regionName,
|
||||||
|
region.corp_id AS corpId,
|
||||||
|
COUNT(alarm.id) AS totalCount,
|
||||||
|
COALESCE(SUM(alarm.disposal_status = 'PENDING'), 0) AS pendingCount,
|
||||||
|
COALESCE(SUM(alarm.disposal_status = 'HIDDEN_HANDLING'), 0) AS hiddenHandlingCount,
|
||||||
|
COALESCE(SUM(alarm.disposal_status = 'DISPOSED'), 0) AS disposedCount
|
||||||
|
FROM edgeguard_region region
|
||||||
|
LEFT JOIN edgeguard_alarm alarm ON alarm.region_id = region.id
|
||||||
|
AND COALESCE(alarm.delete_enum, 'false') != 'true'
|
||||||
|
<if test="start != null">AND alarm.alarm_time <![CDATA[>=]]> #{start}</if>
|
||||||
|
<if test="end != null">AND alarm.alarm_time <![CDATA[<=]]> #{end}</if>
|
||||||
|
WHERE COALESCE(region.delete_enum, 'false') != 'true'
|
||||||
|
AND region.region_status = 'ENABLED'
|
||||||
|
AND region.corp_id = #{corpId}
|
||||||
|
<if test="regionName != null and regionName != ''">
|
||||||
|
AND region.region_name LIKE CONCAT('%', #{regionName}, '%')
|
||||||
|
</if>
|
||||||
|
GROUP BY region.id, region.region_code, region.region_name, region.corp_id, region.sort_no
|
||||||
|
ORDER BY region.sort_no, region.id
|
||||||
|
LIMIT #{offset}, #{pageSize}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="countStatisticRegion" resultType="long">
|
||||||
|
SELECT COUNT(*)
|
||||||
|
FROM edgeguard_region region
|
||||||
|
WHERE COALESCE(region.delete_enum, 'false') != 'true'
|
||||||
|
AND region.region_status = 'ENABLED'
|
||||||
|
AND region.corp_id = #{corpId}
|
||||||
|
<if test="regionName != null and regionName != ''">
|
||||||
|
AND region.region_name LIKE CONCAT('%', #{regionName}, '%')
|
||||||
|
</if>
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue