diff --git a/src/main/java/com/zhgd/xmgl/modules/policecamera/controller/PoliceCameraItemFileController.java b/src/main/java/com/zhgd/xmgl/modules/policecamera/controller/PoliceCameraItemFileController.java index cc22e9277..a5207ab7e 100644 --- a/src/main/java/com/zhgd/xmgl/modules/policecamera/controller/PoliceCameraItemFileController.java +++ b/src/main/java/com/zhgd/xmgl/modules/policecamera/controller/PoliceCameraItemFileController.java @@ -23,6 +23,7 @@ import org.springframework.context.annotation.Lazy; import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; +import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -120,6 +121,22 @@ public class PoliceCameraItemFileController { return Result.ok(); } + @OperLog(operModul = "执法记录仪文件管理", operType = "批量删除", operDesc = "批量删除执法记录仪文件信息") + @ApiOperation(value = "批量删除执法记录仪文件信息", notes = "批量删除执法记录仪文件信息", httpMethod = "POST") + @ApiImplicitParam(name = "ids", value = "执法记录仪文件管理ids(多个,分隔)", paramType = "body", required = true, dataType = "String") + @PostMapping(value = "/deleteBatch") + public Result deleteBatch(@ApiIgnore @RequestBody Map map) { + Result result = new Result<>(); + String ids = MapUtils.getString(map, "ids"); + if (ids == null || "".equals(ids.trim())) { + result.error500("参数不识别!"); + } else { + policeCameraItemFileService.removeByIds(Arrays.asList(ids.split(","))); + Result.success("删除成功!"); + } + return result; + } + /** * 通过id查询 * diff --git a/src/main/java/com/zhgd/xmgl/modules/video/entity/bo/GroupVideoNumBo.java b/src/main/java/com/zhgd/xmgl/modules/video/entity/bo/GroupVideoNumBo.java new file mode 100644 index 000000000..9c6fe4b7c --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/video/entity/bo/GroupVideoNumBo.java @@ -0,0 +1,9 @@ +package com.zhgd.xmgl.modules.video.entity.bo; + +import lombok.Data; + +@Data +public class GroupVideoNumBo { + private Integer totalNum; + private Long groupId; +} diff --git a/src/main/java/com/zhgd/xmgl/modules/video/entity/vo/VideoGroupVo.java b/src/main/java/com/zhgd/xmgl/modules/video/entity/vo/VideoGroupVo.java new file mode 100644 index 000000000..0be297432 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/video/entity/vo/VideoGroupVo.java @@ -0,0 +1,11 @@ +package com.zhgd.xmgl.modules.video.entity.vo; + +import com.zhgd.xmgl.modules.video.entity.VideoGroup; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class VideoGroupVo extends VideoGroup { + @ApiModelProperty("摄像头数量") + private Integer totalNum; +} diff --git a/src/main/java/com/zhgd/xmgl/modules/video/mapper/VideoItemMapper.java b/src/main/java/com/zhgd/xmgl/modules/video/mapper/VideoItemMapper.java index 55ffb544b..15537e507 100644 --- a/src/main/java/com/zhgd/xmgl/modules/video/mapper/VideoItemMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/video/mapper/VideoItemMapper.java @@ -5,11 +5,13 @@ import com.zhgd.annotation.DataScope; import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.xmgl.base.entity.vo.TrendOneVo; import com.zhgd.xmgl.modules.video.entity.VideoItem; +import com.zhgd.xmgl.modules.video.entity.bo.GroupVideoNumBo; import com.zhgd.xmgl.modules.xz.entity.vo.CountStatusVo; import com.zhgd.xmgl.modules.yunlianwanwu.middle.entity.VideoItemConfigBo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -183,4 +185,6 @@ public interface VideoItemMapper extends BaseMapper { List countStatusTrend(Map param); List getExceedSpeedTrend(Map map); + + List getGroupVideoNumList(HashMap paramMap); } diff --git a/src/main/java/com/zhgd/xmgl/modules/video/mapper/xml/VideoItemMapper.xml b/src/main/java/com/zhgd/xmgl/modules/video/mapper/xml/VideoItemMapper.xml index 90c56e454..ee4fc5065 100644 --- a/src/main/java/com/zhgd/xmgl/modules/video/mapper/xml/VideoItemMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/video/mapper/xml/VideoItemMapper.xml @@ -175,7 +175,7 @@ and t2.project_sn = #{projectSn} order by t1.sort_num - and ti.device_state = #{deviceState} + and t1.device_state = #{deviceState} + + diff --git a/src/main/java/com/zhgd/xmgl/modules/video/service/impl/VideoGroupServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/video/service/impl/VideoGroupServiceImpl.java index b34b65b3b..2d8570151 100644 --- a/src/main/java/com/zhgd/xmgl/modules/video/service/impl/VideoGroupServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/video/service/impl/VideoGroupServiceImpl.java @@ -1,9 +1,10 @@ package com.zhgd.xmgl.modules.video.service.impl; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -11,20 +12,19 @@ import com.zhgd.jeecg.common.execption.OpenAlertException; import com.zhgd.jeecg.common.system.query.QueryGenerator; import com.zhgd.xmgl.modules.video.entity.VideoGroup; import com.zhgd.xmgl.modules.video.entity.VideoItem; +import com.zhgd.xmgl.modules.video.entity.bo.GroupVideoNumBo; +import com.zhgd.xmgl.modules.video.entity.vo.VideoGroupVo; import com.zhgd.xmgl.modules.video.mapper.VideoGroupMapper; import com.zhgd.xmgl.modules.video.mapper.VideoItemMapper; import com.zhgd.xmgl.modules.video.service.IVideoGroupService; -import com.zhgd.xmgl.modules.xz.entity.XzProjectOrg; import com.zhgd.xmgl.util.ListUtils; import com.zhgd.xmgl.util.MessageUtil; -import org.apache.commons.collections.MapUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.HashMap; -import java.util.List; -import java.util.Objects; +import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -122,6 +122,36 @@ public class VideoGroupServiceImpl extends ServiceImpl paramMap) { QueryWrapper queryWrapper = QueryGenerator.initPageQueryWrapper(VideoGroup.class, paramMap); - return ListUtils.listToTree(JSONArray.parseArray(JSON.toJSONString(list(queryWrapper))), "id", "parentId", "children"); + List groups = list(queryWrapper); + List videoNumBos = videoItemMapper.getGroupVideoNumList(paramMap); + Map videoNumMap = videoNumBos.stream().collect(Collectors.toMap(GroupVideoNumBo::getGroupId, Function.identity(), (o1, o2) -> o1)); + List videoGroupVos = BeanUtil.copyToList(groups, VideoGroupVo.class); + for (VideoGroupVo vo : videoGroupVos) { + vo.setTotalNum(Optional.ofNullable(videoNumMap.get(vo.getId())).map(GroupVideoNumBo::getTotalNum).orElse(0)); + } + JSONArray jsonArray = ListUtils.listToTree(JSONArray.parseArray(JSON.toJSONString(videoGroupVos)), "id", "parentId", "children"); + for (int i = 0; i < jsonArray.size(); i++) { + JSONObject jsonObject = jsonArray.getJSONObject(i); + getTotalNum(jsonObject, "children"); + } + return jsonArray; } + + private Integer getTotalNum(JSONObject jsonObject, String childName) { + JSONArray children = jsonObject.getJSONArray(childName); + Integer thisNum = jsonObject.getInteger("totalNum"); + Integer totalChildNum = 0; + if (CollUtil.isNotEmpty(children)) { + for (int i = 0; i < children.size(); i++) { + JSONObject child = children.getJSONObject(i); + Integer childNum = getTotalNum(child, childName); + // 累加子节点的统计结果 + totalChildNum += childNum; + } + } + int total = thisNum + totalChildNum; + jsonObject.put("totalNum", total); + return total; + } + } diff --git a/src/main/java/com/zhgd/xmgl/push/controller/UniPushController.java b/src/main/java/com/zhgd/xmgl/push/controller/UniPushController.java index 005500b6b..a526bf1ce 100644 --- a/src/main/java/com/zhgd/xmgl/push/controller/UniPushController.java +++ b/src/main/java/com/zhgd/xmgl/push/controller/UniPushController.java @@ -71,8 +71,9 @@ public class UniPushController { if (apiResult.isSuccess()){ result.successMsg("操作成功"); }else{ - result.error500(apiResult.getMsg()); +// result.error500(apiResult.getMsg()); } + result.code(200); }catch (Exception e){ log.error("error:", e); result.error500("操作失败"); diff --git a/src/main/java/com/zhgd/xmgl/push/service/impl/UniPushServiceImpl.java b/src/main/java/com/zhgd/xmgl/push/service/impl/UniPushServiceImpl.java index a0e3d03e7..ffb06699d 100644 --- a/src/main/java/com/zhgd/xmgl/push/service/impl/UniPushServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/push/service/impl/UniPushServiceImpl.java @@ -1,6 +1,7 @@ package com.zhgd.xmgl.push.service.impl; import com.alibaba.fastjson.JSON; +import com.getui.push.v2.sdk.api.UserApi; import com.getui.push.v2.sdk.common.ApiResult; import com.getui.push.v2.sdk.dto.req.Audience; import com.getui.push.v2.sdk.dto.req.CidAliasListDTO; @@ -154,8 +155,11 @@ public class UniPushServiceImpl implements UniPushService { list.add(cidAlias); cidAliasListDTO.setDataList(list); if (pushApiHelper != null) { - ApiResult result = pushApiHelper.getUserApi().bindAlias(cidAliasListDTO); - return result; + UserApi userApi = pushApiHelper.getUserApi(); + if (userApi != null) { + return userApi.bindAlias(cidAliasListDTO); + } + return ApiResult.fail("配置初始化失败", 5000); } else { return ApiResult.fail("配置初始化失败", 5000); }