sunhh пре 2 година
родитељ
комит
bc103970b2

+ 3 - 0
business-service/src/main/java/com/ozs/service/entity/vo/MsgAlarmVo.java

@@ -6,6 +6,7 @@ import lombok.Data;
 
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 
 /**
  * <p>
@@ -66,5 +67,7 @@ public class MsgAlarmVo extends PageVo implements Serializable {
      */
     private Integer isLock;
 
+    private List<String> userIds;
 
+    private Integer status;
 }

+ 8 - 2
business-service/src/main/java/com/ozs/service/mapper/MsgWebPushMapper.java

@@ -1,7 +1,9 @@
 package com.ozs.service.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ozs.service.entity.MsgAlarm;
 import com.ozs.service.entity.MsgWebPush;
+import com.ozs.service.entity.vo.MsgAlarmVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -13,7 +15,11 @@ import java.util.List;
  */
 @Mapper
 public interface MsgWebPushMapper extends BaseMapper<MsgWebPush> {
-    Integer webAlarmNum(@Param("userId") String userId);
+    Integer webAlarmNum(@Param("userIds") List<String> userIds);
 
-    List<MsgWebPush> webAlarm(@Param("userId") String userId);
+    List<MsgWebPush> webAlarm(@Param("userIds") List<String> userIds);
+
+    List<MsgAlarm> messageMore(MsgAlarmVo msgAlarmVo);
+
+    List<String> messageMoreByUserIds(List<String> userIds);
 }

+ 6 - 0
business-service/src/main/java/com/ozs/service/service/MsgWebPushService.java

@@ -1,9 +1,13 @@
 package com.ozs.service.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ozs.service.entity.MsgAlarm;
 import com.ozs.service.entity.MsgAppPush;
 import com.ozs.service.entity.MsgWebPush;
+import com.ozs.service.entity.vo.MsgAlarmVo;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -14,4 +18,6 @@ public interface MsgWebPushService extends IService<MsgWebPush> {
     int read(MsgWebPush msgWebPush);
 
     Map webAlarm(String userId);
+
+    IPage messageMore(String userId, MsgAlarmVo msgAlarmVo);
 }

+ 62 - 5
business-service/src/main/java/com/ozs/service/service/impl/MsgWebPushServiceImpl.java

@@ -1,15 +1,29 @@
 package com.ozs.service.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.ozs.common.utils.AppendUtils;
+import com.ozs.common.utils.PageUtils;
+import com.ozs.common.utils.StringUtils;
+import com.ozs.service.entity.BaseCameraManagement;
+import com.ozs.service.entity.BaseRailwayManagement;
+import com.ozs.service.entity.MsgAlarm;
 import com.ozs.service.entity.MsgWebPush;
+import com.ozs.service.entity.vo.MsgAlarmVo;
 import com.ozs.service.mapper.MsgWebPushMapper;
+import com.ozs.service.service.BaseCameraManagementService;
+import com.ozs.service.service.BaseRailwayManagementService;
+import com.ozs.service.service.MsgAlarmFrequencyService;
 import com.ozs.service.service.MsgWebPushService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import javax.annotation.Resource;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @Author : sunhh
@@ -19,6 +33,10 @@ import java.util.Map;
 public class MsgWebPushServiceImpl extends ServiceImpl<MsgWebPushMapper, MsgWebPush> implements MsgWebPushService {
     @Autowired
     private MsgWebPushMapper msgWebPushMapper;
+    @Autowired
+    private BaseCameraManagementService baseCameraManagementService;
+    @Autowired
+    private BaseRailwayManagementService baseRailwayManagementService;
 
     @Override
     public int read(MsgWebPush msgWebPush) {
@@ -29,11 +47,50 @@ public class MsgWebPushServiceImpl extends ServiceImpl<MsgWebPushMapper, MsgWebP
 
     @Override
     public Map webAlarm(String userId) {
+        List<String> userIds = baseCameraManagementService.getUserIds(userId);
         Map<String, Object> webAlarmMap = new HashMap<>();
-        Integer webAlarmNum = msgWebPushMapper.webAlarmNum(userId);
-        List<MsgWebPush> webAlarm = msgWebPushMapper.webAlarm(userId);
+        Integer webAlarmNum = msgWebPushMapper.webAlarmNum(userIds);
+        List<MsgWebPush> webAlarm = msgWebPushMapper.webAlarm(userIds);
         webAlarmMap.put("webAlarmNum", webAlarmNum);
         webAlarmMap.put("webAlarm", webAlarm);
         return webAlarmMap;
     }
+
+    @Override
+    public IPage messageMore(String userId, MsgAlarmVo msgAlarmVo) {
+        List<String> userIds = baseCameraManagementService.getUserIds(userId);
+         msgAlarmVo.setUserIds(userIds);
+        List<MsgAlarm> webAlarm = msgWebPushMapper.messageMore(msgAlarmVo);
+        Page<MsgAlarm> page = PageUtils.getPages(msgAlarmVo.getPageNum().intValue(), msgAlarmVo.getPageSize().intValue(), webAlarm);
+        // IPage<MsgAlarm> page = listToPage(webAlarm, msgAlarmVo.getPageNum().intValue(), msgAlarmVo.getPageSize().intValue());
+        if(!ObjectUtils.isEmpty(page) && !ObjectUtils.isEmpty(page.getRecords())){
+            List<MsgAlarm> dto1 = page.getRecords().stream().map(o -> {
+                String[] split = o.getImageUrl().split(";");
+                ArrayList<String> objects = new ArrayList<>(Arrays.asList(split));
+                o.setImageUrls(objects);
+                LambdaQueryWrapper<BaseCameraManagement> cameraManagementLambdaQueryWrapper = new LambdaQueryWrapper<BaseCameraManagement>();
+                if (!ObjectUtils.isEmpty(o.getCameraCode())) {
+                    cameraManagementLambdaQueryWrapper.eq(BaseCameraManagement::getCameraCode, o.getCameraCode());
+                }
+                BaseCameraManagement cameraManagement = baseCameraManagementService.getOne(cameraManagementLambdaQueryWrapper);
+                LambdaQueryWrapper<BaseRailwayManagement> queryWrapper = new LambdaQueryWrapper<BaseRailwayManagement>();
+                if (!ObjectUtils.isEmpty(cameraManagement.getRailwayCode())) {
+                    queryWrapper.eq(BaseRailwayManagement::getRailwayCode, cameraManagement.getRailwayCode());
+                }
+                BaseRailwayManagement baseRailwayManagement = baseRailwayManagementService.getOne(queryWrapper);
+
+                o.setRailwayName(baseRailwayManagement.getRailwayName());
+                String mils = AppendUtils.stringAppend(cameraManagement.getInstallMile());
+                o.setAlarmMiles(mils);
+                String end = AppendUtils.stringAppend(cameraManagement.getEndMile());
+                o.setEndMile(end);
+                String begin = AppendUtils.stringAppend(cameraManagement.getBeginMile());
+                o.setBeginMile(begin);
+                // o.setAlarmCount((int) msgAlarmFrequencyService.count()+1);
+                return o;
+            }).collect(Collectors.toList());
+            page.setRecords(dto1);
+        }
+        return page;
+    }
 }

+ 61 - 2
business-service/src/main/resources/mapper/service/MsgWebPushMapper.xml

@@ -3,10 +3,69 @@
 <mapper namespace="com.ozs.service.mapper.MsgWebPushMapper">
 
     <select id="webAlarmNum" parameterType="java.lang.String" resultType="java.lang.Integer">
-        select count(*) from msg_web_push where status = 1 and receive_by = #{userId}
+        select count(*) from msg_web_push where status = 1 and receive_by in
+        <foreach item="item" collection="userIds" separator="," open="(" close=")" index="">
+            #{item}
+        </foreach>
     </select>
 
     <select id="webAlarm" parameterType="java.lang.String" resultType="com.ozs.service.entity.MsgWebPush">
-        select * from msg_web_push where status = 1 and receive_by = #{userId}
+        select * from msg_web_push where status = 1 and receive_by in
+        <foreach item="item" collection="userIds" separator="," open="(" close=")" index="">
+            #{item}
+        </foreach>
+    </select>
+
+    <select id="messageMoreByUserIds" parameterType="java.util.List" resultType="java.lang.String">
+        select alarm_id from msg_web_push where status = #{status} and receive_by in
+        <foreach item="item" collection="userIds" index="index" separator="," open="(" close=")">
+            #{item}
+        </foreach>
+    </select>
+
+    <select id="messageMore" parameterType="com.ozs.service.entity.vo.MsgAlarmVo" resultType="com.ozs.service.entity.MsgAlarm">
+        select b.* from (
+            select alarm_id from msg_web_push
+            <where>
+                <if test="status != null  and status != ''">
+                    and status = #{status}
+                </if>
+                <if test="userIds != null and userIds != ''">
+                    and receive_by in
+                    <foreach item="item" collection="userIds" index="index" separator="," open="(" close=")">
+                        #{item}
+                    </foreach>
+                </if>
+            </where>
+        ) a left join (
+            select * from msg_alarm
+            <where>
+                <if test="alarmType != null and alarmType != ''">
+                    and alarm_type = #{alarmType}
+                </if>
+                <if test="beginAlarmTime != null and beginAlarmTime != ''">
+                    and alarm_time &gt;= #{beginAlarmTime}
+                </if>
+                <if test="endAlarmTime != null and endAlarmTime != ''">
+                    and alarm_time &lt;= #{endAlarmTime}
+                </if>
+                <if test="isLock != null and isLock != ''">
+                    and is_lock = #{isLock}
+                </if>
+            </where>
+        ) b on a.alarm_id = b.alarm_id left join (
+            select * from base_camera_management
+            <where>
+                <if test="railwayCode != null and railwayCode != ''">
+                    and railway_code = #{railwayCode}
+                </if>
+                <if test="beginMile != null and beginMile != ''">
+                    and begin_mile &gt;= #{beginMile}
+                </if>
+                <if test="endMile != null and endMile != ''">
+                    and end_mile &lt;= #{endMile}
+                </if>
+            </where>
+        ) c on b.camera_code = c.camera_code
     </select>
 </mapper>

+ 11 - 0
hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/MsgAlarmController.java

@@ -80,6 +80,17 @@ public class MsgAlarmController extends BaseController {
     @Autowired
     private ISysDictDataService dictDataService;
 
+    /**
+     * web更多消息
+     */
+    @PostMapping("/messageMore")
+    @ApiOperation("更多消息")
+    public AjaxResult messageMore(@RequestBody MsgAlarmVo msgAlarmVo) {
+        String userId = getUserId();
+        IPage messageMore = msgWebPushService.messageMore(userId, msgAlarmVo);
+        return AjaxResult.success(messageMore);
+    }
+
     /**
      * web报警未读消息个数+未读消息列表
      */