zhangnaisong
2024-02-21 ca8c7b4e9c4762acb2fc2c793d79ae58e05dcf36
ard-work/src/main/java/com/ruoyi/app/position/controller/ArdAppPositionController.java
@@ -1,28 +1,21 @@
package com.ruoyi.app.position.controller;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWellParam;
import com.ruoyi.app.position.domain.ArdAppPosition;
import com.ruoyi.app.position.service.IArdAppPositionService;
import com.ruoyi.common.constant.CacheConstants;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.device.hiksdk.util.minio.MinioUtils;
import com.ruoyi.rongcloud.service.RongCloudService;
import com.ruoyi.system.domain.SysUserOnline;
import com.ruoyi.system.service.ISysRoleService;
import com.ruoyi.system.service.ISysUserOnlineService;
import com.ruoyi.system.service.ISysUserService;
import com.ruoyi.utils.minio.MinioUtil;
import com.ruoyi.utils.result.Results;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
@@ -55,8 +48,8 @@
    private IArdAppPositionService ardAppPositionService;
    @Autowired
    private ISysUserService sysUserService;
    @Autowired
    private RongCloudService rongCloudService;
//    @Autowired
//    private MinioUtils minioUtil;
    /**
     * 查询app位置列表
@@ -103,7 +96,7 @@
    @PostMapping
    public AjaxResult add(@RequestBody ArdAppPosition ardAppPosition)
    {
        return toAjax(ardAppPositionService.insertArdAppPosition(ardAppPosition));
        return AjaxResult.success(ardAppPositionService.insertArdAppPosition(ardAppPosition));
    }
    /**
@@ -140,7 +133,17 @@
        return AjaxResult.success(list);
    }
    /**
     * 获取所有app用户
     */
    @ApiOperation("获取所有app用户")
    @GetMapping("/getAppUserList")
    public AjaxResult getAppUserList(Long deptId) {
        SysUser user = new SysUser();
        user.setDeptId(deptId);
        List<SysUser> list = sysUserService.selectAllAppUserList(user);
        return AjaxResult.success(list);
    }
    /**
     * 获取所有app用户
     */
@@ -159,20 +162,27 @@
            if(ardAppPosition!=null) {
                Map<String, Object> params =new HashMap<>();
                params.put("longitude", ardAppPosition.getLongitude());
                params.put("lagitude", ardAppPosition.getLatitude());
                params.put("latitude", ardAppPosition.getLatitude());
                params.put("altitude", ardAppPosition.getAltitude());
                params.put("bearing", ardAppPosition.getBearing());
                sysUser.setParams(params);
            }
            Boolean online = rongCloudService.checkOnline(sysUser.getUserId());
            if(online)
            if(StringUtils.isNotNull(sysUser.getAppOnlineState()))
            {
                onLineList.add(sysUser);
                if(sysUser.getAppOnlineState().equals("1"))
                {
                    onLineList.add(sysUser);
                }
                else
                {
                    offLineList.add(sysUser);
                }
            }
            else
            {
                offLineList.add(sysUser);
            }
        }
        Map<String,Object> onlineMap=new HashMap<>();
        onlineMap.put("children",onLineList);
@@ -189,6 +199,7 @@
        lists.add(offlineMap);
        return AjaxResult.success(lists);
    }
    /**
     * 获取用户详情
     */
@@ -203,7 +214,47 @@
    @ApiOperation("上传文件")
    public AjaxResult uploadFile(MultipartFile file,String type)
    {
        String url = MinioUtils.putObjectAndGetUrl("app",type, file);
        String url = MinioUtil.putObjectAndGetUrl("app",type, file);
        return AjaxResult.success(url);
    }
    @GetMapping("/getOnlinePCOrCommander")
    @ApiOperation("查询本部门在线PC端及指挥端")
    public AjaxResult getOnlinePCOrCommander() {
        String usersId = SecurityUtils.getUserId();
        Map<String,List<SysUser>> result = ardAppPositionService.getOnlinePCOrCommander(usersId);
        return AjaxResult.success(result);
    }
    @GetMapping("/getOnlineCommanderPosition")
    @ApiOperation("单兵端查看已通过审批的在线指挥端位置")
    public AjaxResult getOnlineCommanderPosition() {
        String soilderId = SecurityUtils.getUserId();
        try{
            List<Map<String,Object>> result = ardAppPositionService.getOnlineCommanderPosition(soilderId);
            return AjaxResult.success(result);
        }catch(Exception e){
            e.printStackTrace();
            return AjaxResult.error();
        }
    }
    @GetMapping("/getAPPPositionByUserIdAndTime")
    @ApiOperation("查看APP历史位置")
    public AjaxResult getAPPPositionByUserIdAndTime(@RequestBody Map<String,String> para) {
        try{
            List<ArdAppPosition> result = ardAppPositionService.getAPPPositionByUserIdAndTime(para);
            return AjaxResult.success(result);
        }catch(Exception e){
            e.printStackTrace();
            return AjaxResult.error();
        }
    }
    @GetMapping("/getOnlineAPPSoilderByCommanderId")
    public AjaxResult getOnlineAPPSoilderByCommanderId() {
        String userId = SecurityUtils.getUserId();
        return success(ardAppPositionService.getOnlineAPPSoilderByCommanderId(userId));
    }
}