2021与蓝度共同重构项目,服务端
liuhaonan
2022-09-20 045dcbf340bb5311223ba6b021fe8aa790e94086
changes
已添加10个文件
已修改11个文件
已重命名1个文件
599 ■■■■■ 文件已修改
dao/src/main/java/com/sandu/ximon/dao/bo/LEDNovaGroupListBo.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dao/src/main/java/com/sandu/ximon/dao/domain/LedNovaGroup.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dao/src/main/java/com/sandu/ximon/dao/domain/LedNovaGroupRelation.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dao/src/main/java/com/sandu/ximon/dao/enums/MenuEnum.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dao/src/main/java/com/sandu/ximon/dao/mapper/LedNovaGroupMapper.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dao/src/main/java/com/sandu/ximon/dao/mapper/LedNovaGroupRelationMapper.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dao/src/main/java/com/sandu/ximon/dao/mapper/LedPlayerEntityMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dao/src/main/resources/mapper/LedNovaGroupMapper.xml 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dao/src/main/resources/mapper/LedNovaGroupRelationMapper.xml 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dao/src/main/resources/mapper/LedPlayerEntityMapper.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LedNovaGroupController.java 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleGroupController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/ServVnnoxController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/VnnoxController.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/param/GroupParam.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/service/ClientService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/service/LedNovaGroupRelationService.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/service/LedNovaGroupService.java 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/service/LedPlayerEntityService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleGroupService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/resources/application-prod.yml 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
dao/src/main/java/com/sandu/ximon/dao/bo/LEDNovaGroupListBo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package com.sandu.ximon.dao.bo;
import lombok.Data;
/**
 * @author LiuHaoNan
 * @date 2022/9/20
 */
@Data
public class LEDNovaGroupListBo {
    private Long id;
    /**
     * æ’­æ”¾å™¨åç§°(database)
     */
    private String name;
    /**
     * æ’­æ”¾å™¨ID(Vnnox)
     */
    private String playerId;
}
dao/src/main/java/com/sandu/ximon/dao/domain/LedNovaGroup.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,56 @@
package com.sandu.ximon.dao.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
 * è¯ºç“¦åˆ†ç»„列表
 *
 * @TableName led_nova_group
 */
@TableName(value = "led_nova_group")
@Data
public class LedNovaGroup implements Serializable {
    /**
     * åˆ†ç»„id
     */
    @TableId(type = IdType.AUTO)
    private Long groupId;
    /**
     * åˆ†ç»„名称
     */
    private String groupName;
    /**
     * ä¸Šçº§å®¢æˆ·id
     */
    private Long clientId;
    /**
     * ç”¨æˆ·id
     */
    private Long userId;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    @JsonIgnore
    private Date createTime;
    /**
     * æ›´æ–°æ—¶é—´
     */
    @JsonIgnore
    private Date updateTime;
    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}
dao/src/main/java/com/sandu/ximon/dao/domain/LedNovaGroupRelation.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,50 @@
package com.sandu.ximon.dao.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
/**
 * è¯ºç“¦åˆ†ç»„关系表
 * @TableName led_nova_group_relation
 */
@TableName(value ="led_nova_group_relation")
@Data
public class LedNovaGroupRelation implements Serializable {
    /**
     *
     */
    @TableId(type = IdType.AUTO)
    private Long id;
    /**
     * è¯ºç“¦id
     */
    private Long novaId;
    /**
     * åˆ†ç»„id
     */
    private Long novaGroupId;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    @JsonIgnore
    private Date createTime;
    /**
     *
     */
    @JsonIgnore
    private Date updateTime;
    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}
dao/src/main/java/com/sandu/ximon/dao/enums/MenuEnum.java
@@ -129,6 +129,12 @@
    LED_N_PLAY_PLAN_UPDATE("编辑诺瓦计划"),
    LED_N_PLAY_PLAN_DETELE("删除诺瓦计划"),
    LED_N_PLAY_PLAN_PUSH("推送诺瓦计划"),
    LED_N_GROUP_ADD("诺瓦分组新增"),
    LED_N_GROUP_UPDATE("诺瓦分组编辑"),
    LED_N_GROUP_DEL("诺瓦分组删除"),
    LED_N_GROUP_LIST("诺瓦分组列表"),
    LED_N_GROUP_BIND("诺瓦分组绑定"),
    LED_N_GROUP_INFO("诺瓦分组详情"),
    LED_N_PLAY_PLAN_PUSH_SCHEDULE("推送诺瓦定时"),
    POLE_VIRTUAL_ADD("新增虚拟灯杆"),
    POLE_UPDATE("编辑灯杆"),
dao/src/main/java/com/sandu/ximon/dao/mapper/LedNovaGroupMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.sandu.ximon.dao.mapper;
import com.sandu.ximon.dao.domain.LedNovaGroup;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* @author Administrator
* @description é’ˆå¯¹è¡¨ã€led_nova_group(诺瓦分组列表)】的数据库操作Mapper
* @createDate 2022-09-19 15:28:27
* @Entity com.sandu.ximon.dao.domain.LedNovaGroup
*/
@Mapper
public interface LedNovaGroupMapper extends BaseMapper<LedNovaGroup> {
}
dao/src/main/java/com/sandu/ximon/dao/mapper/LedNovaGroupRelationMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.sandu.ximon.dao.mapper;
import com.sandu.ximon.dao.domain.LedNovaGroupRelation;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* @author Administrator
* @description é’ˆå¯¹è¡¨ã€led_nova_group_relation(诺瓦分组关系表)】的数据库操作Mapper
* @createDate 2022-09-19 17:26:03
* @Entity com.sandu.ximon.dao.domain.LedNovaGroupRelation
*/
@Mapper
public interface LedNovaGroupRelationMapper extends BaseMapper<LedNovaGroupRelation> {
}
dao/src/main/java/com/sandu/ximon/dao/mapper/LedPlayerEntityMapper.java
@@ -1,5 +1,6 @@
package com.sandu.ximon.dao.mapper;
import com.sandu.ximon.dao.bo.LEDNovaGroupListBo;
import com.sandu.ximon.dao.domain.LedPlayerEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
@@ -17,6 +18,8 @@
    List<LedPlayerEntity> ledPlayerEntityList(String keyword, Long userid);
    List<LedPlayerEntity> ledPlayerEntityListOnBinding(String keyword, Long userid);
    List<LEDNovaGroupListBo> getListByGroupId(Long groupId,Long clientId);
}
dao/src/main/resources/mapper/LedNovaGroupMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
<?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.sandu.ximon.dao.mapper.LedNovaGroupMapper">
    <resultMap id="BaseResultMap" type="com.sandu.ximon.dao.domain.LedNovaGroup">
            <id property="groupId" column="group_id" jdbcType="BIGINT"/>
            <result property="groupName" column="group_name" jdbcType="VARCHAR"/>
            <result property="clientId" column="client_id" jdbcType="BIGINT"/>
            <result property="userId" column="user_id" jdbcType="BIGINT"/>
            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
    </resultMap>
    <sql id="Base_Column_List">
        group_id,group_name,client_id,
        user_id,create_time,update_time
    </sql>
</mapper>
dao/src/main/resources/mapper/LedNovaGroupRelationMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
<?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.sandu.ximon.dao.mapper.LedNovaGroupRelationMapper">
    <resultMap id="BaseResultMap" type="com.sandu.ximon.dao.domain.LedNovaGroupRelation">
            <id property="id" column="id" jdbcType="BIGINT"/>
            <result property="novaId" column="nova_id" jdbcType="BIGINT"/>
            <result property="novaGroupId" column="nova_group_id" jdbcType="BIGINT"/>
            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
    </resultMap>
    <sql id="Base_Column_List">
        id,nova_id,nova_group_id,
        create_time,update_time
    </sql>
</mapper>
dao/src/main/resources/mapper/LedPlayerEntityMapper.xml
@@ -66,5 +66,19 @@
            </if>
        </where>
    </select>
    <select id="getListByGroupId" resultType="com.sandu.ximon.dao.bo.LEDNovaGroupListBo">
        SELECT
        t1.*
        FROM
        led t1
        INNER JOIN led_nova_group_relation t2 ON t1.id = t2.nova_id
        LEFT JOIN led_nova_group t3 ON t3.group_id = t2.nova_group_id
        WHERE
        t3.group_id=#{groupId}
        <if test="clientId != null">
            AND (t2.user_id = #{clientId} OR t2.client_id = #{clientId})
        </if>
    </select>
</mapper>
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LedNovaGroupController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,123 @@
package com.sandu.ximon.admin.controller;
import com.github.pagehelper.PageHelper;
import com.sandu.common.domain.ResponseVO;
import com.sandu.common.object.BaseConditionVO;
import com.sandu.common.util.ResponseUtil;
import com.sandu.ximon.admin.param.GroupParam;
import com.sandu.ximon.admin.security.PermissionConfig;
import com.sandu.ximon.admin.service.LedNovaGroupService;
import com.sandu.ximon.dao.enums.MenuEnum;
import lombok.AllArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
 * @author LiuHaoNan
 * @date 2022/9/20
 */
@RestController
@AllArgsConstructor
@RequestMapping("/v1/ledGroup")
public class LedNovaGroupController {
    private final LedNovaGroupService ledGroupService;
    private PermissionConfig permissionConfig;
    /**
     * æ–°å¢žåˆ†ç»„
     *
     * @param param
     * @return
     */
    @PostMapping("/add")
    public ResponseVO<Object> addGroup(@RequestBody @Validated GroupParam param) {
        if (!permissionConfig.check(MenuEnum.LED_N_GROUP_ADD.getCode())) {
            return ResponseUtil.fail("缺少对应用户权限");
        }
        boolean b = ledGroupService.addGroup(param);
        if (b) {
            return ResponseUtil.success("添加成功");
        } else {
            return ResponseUtil.fail("添加失败");
        }
    }
    /**
     * ç¼–辑分组
     *
     * @param param
     * @return
     */
    @PostMapping("/update")
    public ResponseVO<Object> updateGroup(@RequestBody @Validated GroupParam param) {
        if (!permissionConfig.check(MenuEnum.LED_N_GROUP_UPDATE.getCode())) {
            return ResponseUtil.fail("缺少对应用户权限");
        }
        boolean b = ledGroupService.updateGroup(param);
        if (b) {
            return ResponseUtil.success("编辑成功");
        } else {
            return ResponseUtil.fail("编辑失败");
        }
    }
    /**
     * åˆ é™¤åˆ†ç»„
     *
     * @param groupIds
     * @return
     */
    @PostMapping("/delete")
    public ResponseVO<Object> delGroup(@RequestBody List<Long> groupIds) {
        if (!permissionConfig.check(MenuEnum.LED_N_GROUP_DEL.getCode())) {
            return ResponseUtil.fail("缺少对应用户权限");
        }
        boolean b = ledGroupService.deleteGroup(groupIds);
        if (b) {
            return ResponseUtil.success("删除成功");
        } else {
            return ResponseUtil.fail("删除失败");
        }
    }
    /**
     * åˆ†ç»„列表
     *
     * @param baseConditionVO
     * @param keyword
     * @return
     */
    @GetMapping("/list")
    public ResponseVO<Object> listGroup(BaseConditionVO baseConditionVO,
                                        @RequestParam(value = "keyword", required = false) String keyword) {
        if (!permissionConfig.check(MenuEnum.LED_N_GROUP_LIST.getCode())) {
            return ResponseUtil.fail("缺少对应用户权限");
        }
        PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
        return ResponseUtil.success(ledGroupService.groupList(baseConditionVO, keyword));
    }
    /**
     * ç»‘定LED到分组内
     *
     * @param param
     * @return
     */
    @PostMapping("/bind")
    public ResponseVO<Object> bindPole(@RequestBody GroupParam param) {
        if (!permissionConfig.check(MenuEnum.LED_N_GROUP_BIND.getCode())) {
            return ResponseUtil.fail("缺少对应用户权限");
        }
        boolean b = ledGroupService.bindLed(param.getGroupId(), param.getLedIdList());
        if (b) {
            return ResponseUtil.success("添加成功");
        } else {
            return ResponseUtil.fail("添加失败");
        }
    }
}
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleGroupController.java
@@ -4,7 +4,7 @@
import com.sandu.common.domain.ResponseVO;
import com.sandu.common.object.BaseConditionVO;
import com.sandu.common.util.ResponseUtil;
import com.sandu.ximon.admin.param.PoleGroupParam;
import com.sandu.ximon.admin.param.GroupParam;
import com.sandu.ximon.admin.param.PoleGroupRelationParam;
import com.sandu.ximon.admin.security.PermissionConfig;
import com.sandu.ximon.admin.service.PoleGroupService;
@@ -12,8 +12,6 @@
import lombok.AllArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
 * åˆ†ç»„列表功能
@@ -29,7 +27,7 @@
    private PermissionConfig permissionConfig;
    @PostMapping("/add")
    public ResponseVO<Object> addGroup(@RequestBody @Validated PoleGroupParam param) {
    public ResponseVO<Object> addGroup(@RequestBody @Validated GroupParam param) {
        if (!permissionConfig.check(MenuEnum.GROUP_ADD.getCode())) {
            return ResponseUtil.fail("缺少对应用户权限");
        }
@@ -37,7 +35,7 @@
    }
    @PostMapping("/update/{groupId}")
    public ResponseVO<Object> updateGroup(@PathVariable Long groupId, @RequestBody @Validated PoleGroupParam param) {
    public ResponseVO<Object> updateGroup(@PathVariable Long groupId, @RequestBody @Validated GroupParam param) {
        if (!permissionConfig.check(MenuEnum.GROUP_UPDATE.getCode())) {
            return ResponseUtil.fail("缺少对应用户权限");
        }
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/ServVnnoxController.java
@@ -52,12 +52,12 @@
            //亮度
            String ratio = asyncStatusParam.getData().getRatio();
            int i = Integer.parseInt(ratio);
            redisUtils.set(VnnoxConstant.REDIS_BRIGHTNESS + asyncStatusParam.getPlayerId(), i+"", VnnoxConstant.STATUS_TIME);
            redisUtils.set(VnnoxConstant.REDIS_BRIGHTNESS + asyncStatusParam.getPlayerId(), i + "", VnnoxConstant.STATUS_TIME);
        } else if ("volumeValue".equals(asyncStatusParam.getCommand())) {
            //音量
            String ratio = asyncStatusParam.getData().getRatio();
            int i = Integer.parseInt(ratio);
            redisUtils.set(VnnoxConstant.REDIS_VOL + asyncStatusParam.getPlayerId(), i+"", VnnoxConstant.STATUS_TIME);
            redisUtils.set(VnnoxConstant.REDIS_VOL + asyncStatusParam.getPlayerId(), i + "", VnnoxConstant.STATUS_TIME);
        } else if ("videoSourceValue".equals(asyncStatusParam.getCommand())) {
            //当前视频源
            redisUtils.set(VnnoxConstant.VIDEO_SOURCE_VALUE + asyncStatusParam.getPlayerId(), asyncStatusParam.getData().getVideoSource(), VnnoxConstant.STATUS_TIME);
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/VnnoxController.java
@@ -8,12 +8,15 @@
import com.sandu.ximon.admin.param.NovaAStateInfoParam;
import com.sandu.ximon.admin.param.VnnoxParam;
import com.sandu.ximon.admin.security.PermissionConfig;
import com.sandu.ximon.admin.service.LedNovaGroupRelationService;
import com.sandu.ximon.admin.service.LedNovaGroupService;
import com.sandu.ximon.admin.service.LedPlayerEntityService;
import com.sandu.ximon.admin.service.VnnoxService;
import com.sandu.ximon.admin.utils.VnnoxAPIUtil;
import com.sandu.ximon.admin.vo.NovaAStateInfoVO;
import com.sandu.ximon.admin.vo.NovaPushResultVO;
import com.sandu.ximon.admin.vo.NovaResultParam;
import com.sandu.ximon.dao.domain.LedNovaGroup;
import com.sandu.ximon.dao.domain.LedPlayerEntity;
import com.sandu.ximon.dao.domain.LedV2RegisterResultEntity;
import com.sandu.ximon.dao.enums.MenuEnum;
@@ -43,6 +46,11 @@
    private LedPlayerEntityService ledPlayerEntityService;
    @Autowired
    private VnnoxAPIUtil vnnoxAPIUtil;
    @Autowired
    private LedNovaGroupRelationService relationService;
    @Autowired
    private LedNovaGroupService groupService;
    /**
     * æˆªå±
@@ -247,9 +255,30 @@
            return ResponseUtil.fail("缺少对应用户权限");
        }
        //同步状态
        vnnoxService.getAsyncStatus(param.getPlayerIdList(),param.getStateValue());
        vnnoxService.getAsyncStatus(param.getPlayerIdList(), param.getStateValue());
        //获取同步
        List<NovaAStateInfoVO> info = vnnoxService.getInfo(param.getStateValue(), param.getPlayerIdList());
        return ResponseUtil.success(info);
    }
    /**
     * æ ¹æ®åˆ†ç»„id获取组内的屏幕
     */
    @GetMapping("/getByGroupId")
    public ResponseVO<Object> getByGroupId(@RequestParam(value = "groupId", required = true) Long groupId) {
        if (!permissionConfig.check(MenuEnum.LED_N_GROUP_INFO.getCode())) {
            return ResponseUtil.fail("缺少对应用户权限");
        }
        if (groupId == null) {
            throw new BusinessException("groupId不能为空");
        }
        LedNovaGroup byId = groupService.getById(groupId);
        if (byId == null) {
            throw new BusinessException("分组不存在");
        }
        if (!permissionConfig.check(MenuEnum.LED_LIST.getCode())) {
            return ResponseUtil.fail("缺少对应用户权限");
        }
        return ResponseUtil.success(ledPlayerEntityService.getListByGroupId(groupId));
    }
}
ximon-admin/src/main/java/com/sandu/ximon/admin/param/GroupParam.java
ÎļþÃû´Ó ximon-admin/src/main/java/com/sandu/ximon/admin/param/PoleGroupParam.java ÐÞ¸Ä
@@ -3,14 +3,18 @@
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import java.util.List;
/**
 * @author chenjiantian
 * @date 2021/12/13 18:22
 */
@Data
public class PoleGroupParam {
public class GroupParam {
    private Long groupId;
    @NotEmpty(message = "分组名称不能为空")
    private String groupName;
    private List<Long> ledIdList;
}
ximon-admin/src/main/java/com/sandu/ximon/admin/service/ClientService.java
@@ -392,7 +392,7 @@
    /**
     * \
     * å…¶ä»–类用来查找客户id使用  å¦‚果没有上级客户 è¿™è¿”回用户ID
     * å…¶ä»–类用来查找客户id使用  å¦‚果没有上级客户 è¿”回-1
     *
     * @param
     * @return
ximon-admin/src/main/java/com/sandu/ximon/admin/service/LedNovaGroupRelationService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
package com.sandu.ximon.admin.service;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.sandu.common.service.impl.BaseServiceImpl;
import com.sandu.ximon.dao.domain.LedNovaGroupRelation;
import com.sandu.ximon.dao.mapper.LedNovaGroupRelationMapper;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
 * @author LiuHaoNan
 * @date 2022/9/19
 */
@Service
@AllArgsConstructor
public class LedNovaGroupRelationService extends BaseServiceImpl<LedNovaGroupRelationMapper, LedNovaGroupRelation> {
    /**
     * æ·»åŠ ç»‘å®šå…³ç³»
     * @param groupId
     * @param novaIdList
     * @return
     */
    public boolean saveBinding(Long groupId, List<Long> novaIdList) {
        remove(Wrappers.lambdaQuery(LedNovaGroupRelation.class).eq(LedNovaGroupRelation::getNovaGroupId, groupId));
        if (CollectionUtil.isEmpty(novaIdList)) {
            return true;
        }
        List<LedNovaGroupRelation> batchList = new ArrayList<>();
        for (Long novaId : novaIdList) {
            LedNovaGroupRelation poleGroupRelation = new LedNovaGroupRelation();
            poleGroupRelation.setNovaGroupId(groupId);
            poleGroupRelation.setNovaId(novaId);
            batchList.add(poleGroupRelation);
        }
        return saveBatch(batchList);
    }
}
ximon-admin/src/main/java/com/sandu/ximon/admin/service/LedNovaGroupService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,128 @@
package com.sandu.ximon.admin.service;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.pagehelper.PageHelper;
import com.sandu.common.execption.BusinessException;
import com.sandu.common.object.BaseConditionVO;
import com.sandu.common.service.impl.BaseServiceImpl;
import com.sandu.ximon.admin.param.GroupParam;
import com.sandu.ximon.admin.security.SecurityUtils;
import com.sandu.ximon.dao.domain.LedNovaGroup;
import com.sandu.ximon.dao.domain.LedNovaGroupRelation;
import com.sandu.ximon.dao.mapper.LedNovaGroupMapper;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
/**
 * @author LiuHaoNan
 * @date 2022/9/19
 */
@Service
@AllArgsConstructor
public class LedNovaGroupService extends BaseServiceImpl<LedNovaGroupMapper, LedNovaGroup> {
    private final ClientService clientService;
    private final LedNovaGroupRelationService relationService;
    /**
     * æ–°å¢žåˆ†ç»„
     *
     * @param param
     * @return
     */
    public boolean addGroup(GroupParam param) {
        LedNovaGroup group = new LedNovaGroup();
        group.setUserId(SecurityUtils.getUserId());
        group.setClientId(clientService.getClientId(SecurityUtils.getUserId()));
        group.setGroupName(param.getGroupName());
        return save(group);
    }
    /**
     * ç¼–辑分组
     *
     * @param
     * @param param
     * @return
     */
    public boolean updateGroup(GroupParam param) {
        LedNovaGroup poleGroup = getById(param.getGroupId());
        if (poleGroup == null) {
            throw new BusinessException("未找到该分组");
        }
        poleGroup.setGroupName(param.getGroupName());
        return updateById(poleGroup);
    }
    /**
     * åˆ é™¤åˆ†ç»„
     *
     * @param groupIds
     * @return
     */
    public boolean deleteGroup(List<Long> groupIds) {
        List<LedNovaGroup> ledNovaGroups = listByIds(groupIds);
        if (ledNovaGroups == null) {
            throw new BusinessException("未找到该分组");
        }
        /**
         * åˆªé™¤å…³ç³»
         */
        relationService.remove(Wrappers.lambdaQuery(LedNovaGroupRelation.class).in(LedNovaGroupRelation::getNovaGroupId, groupIds));
        return removeByIds(groupIds);
    }
    /**
     * åˆ†ç»„列表
     *
     * @param baseConditionVO
     * @param keyword
     * @return
     */
    public Object groupList(BaseConditionVO baseConditionVO, String keyword) {
        if (keyword == null) {
            throw new BusinessException("关键字不能为null,不需要模糊查询请传空字符串");
        }
        if (SecurityUtils.getClientId() == null) {
            //超管
            PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
            return list(Wrappers.lambdaQuery(LedNovaGroup.class).like(LedNovaGroup::getGroupName, keyword));
        } else {
            if (clientService.findClientId()) {
                //二级客户
                PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
                return list(Wrappers.lambdaQuery(LedNovaGroup.class).eq(LedNovaGroup::getUserId, SecurityUtils.getUserId()).like(LedNovaGroup::getGroupName, keyword));
            } else {
                //一级客户
                PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
                return list(Wrappers.lambdaQuery(LedNovaGroup.class).eq(LedNovaGroup::getClientId, SecurityUtils.getUserId()).or(
                        user -> {
                            user.eq(LedNovaGroup::getUserId, SecurityUtils.getUserId());
                        }
                ).like(LedNovaGroup::getGroupName, keyword));
            }
        }
    }
    /**
     * ç»‘定
     *
     * @param groupId
     * @param ledIdList
     * @return
     */
    public boolean bindLed(Long groupId, List<Long> ledIdList) {
        LedNovaGroup ledNovaGroup = getById(groupId);
        if (ledNovaGroup == null) {
            throw new BusinessException("未找到该分组");
        }
        return relationService.saveBinding(groupId, ledIdList);
    }
}
ximon-admin/src/main/java/com/sandu/ximon/admin/service/LedPlayerEntityService.java
@@ -10,6 +10,7 @@
import com.sandu.ximon.admin.utils.StoreOperationRecordsUtils;
import com.sandu.ximon.admin.utils.VnnoxAPIUtil;
import com.sandu.ximon.admin.vo.EquipmentInfomation;
import com.sandu.ximon.dao.bo.LEDNovaGroupListBo;
import com.sandu.ximon.dao.domain.LedPlayerEntity;
import com.sandu.ximon.dao.enums.OrderByEnums;
import com.sandu.ximon.dao.mapper.LedPlayerEntityMapper;
@@ -203,4 +204,12 @@
        return SpringContextHolder.getBean(VnnoxService.class).setCacheInfo(vnnoxAPIUtil.syncCurrentInfo(list));
    }
    /**
     * èŽ·å–æ•´ç»„çš„å±å¹•
     * @param groupId
     */
    public List<LEDNovaGroupListBo> getListByGroupId(Long groupId) {
        List<LEDNovaGroupListBo> listByGroupId = baseMapper.getListByGroupId(groupId, SecurityUtils.getClientId());
        return listByGroupId;
    }
}
ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleGroupService.java
@@ -5,7 +5,7 @@
import com.sandu.common.execption.BusinessException;
import com.sandu.common.object.BaseConditionVO;
import com.sandu.common.service.impl.BaseServiceImpl;
import com.sandu.ximon.admin.param.PoleGroupParam;
import com.sandu.ximon.admin.param.GroupParam;
import com.sandu.ximon.admin.security.SecurityUtils;
import com.sandu.ximon.dao.domain.PoleGroup;
import com.sandu.ximon.dao.domain.PoleGroupRelation;
@@ -14,7 +14,6 @@
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
@@ -28,7 +27,7 @@
    private final PoleGroupRelationService poleGroupRelationService;
    public boolean addGroup(PoleGroupParam param) {
    public boolean addGroup(GroupParam param) {
        PoleGroup group = new PoleGroup();
        if (SecurityUtils.getClientId() != null) {
            group.setClientId(SecurityUtils.getUserId());
@@ -37,7 +36,7 @@
        return save(group);
    }
    public boolean updateGroup(Long groupId, PoleGroupParam param) {
    public boolean updateGroup(Long groupId, GroupParam param) {
        PoleGroup poleGroup = getById(groupId);
        if (poleGroup == null) {
            throw new BusinessException("未找到该分组");
ximon-admin/src/main/resources/application-prod.yml
@@ -42,7 +42,7 @@
        # æ˜¯å¦å¯åЍredis缓存用户信息
        cache-online: false
    common:
        urlPrefix: http://112.74.63.130/file/
        urlPrefix: http://39.103.154.108/file/
    upload:
        upload-root-path: /www/wwwroot/xm/file/
    quartz:
@@ -54,8 +54,6 @@
server-conf:
    ip: 39.103.154.108 # 47.106.172.9/101.132.131.91
nova-config:
    ip: #需在 VnnoxConstant ç±»ä¸­æ›´æ”¹
nova-conf:   #诺瓦回调
    notify-url: http://39.103.154.108:20018/serv/vnnox/progress
ximon-admin/src/main/resources/application.yml
@@ -1,6 +1,6 @@
spring:
  profiles:
       active: dev
       active: prod
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8