2021与蓝度共同重构项目,服务端
chenjiantian
2021-12-14 7f9a1ccdad55ce31edd68cfb2c2bd8a4068481c7
灯杆模块
已添加6个文件
已修改7个文件
375 ■■■■ 文件已修改
dao/src/main/java/com/sandu/ximon/dao/domain/PoleBinding.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dao/src/main/java/com/sandu/ximon/dao/enums/PoleBindingEnums.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dao/src/main/java/com/sandu/ximon/dao/mapper/PoleBindingMapper.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dao/src/main/resources/mapper/PoleBindingMapper.xml 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleGroupController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/param/PoleBindingParam.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/param/PoleGroupRelationParam.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/security/SecurityUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleBindingService.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleGroupRelationService.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleGroupService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dao/src/main/java/com/sandu/ximon/dao/domain/PoleBinding.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 java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Data;
/**
 * ç¯æ†ç»‘定设备表
 * @TableName pole_binding
 */
@TableName(value ="pole_binding")
@Data
public class PoleBinding implements Serializable {
    /**
     *
     */
    @TableId(type = IdType.AUTO)
    private Long id;
    /**
     * ç¯æ†ID
     */
    private Long poleId;
    /**
     * ç»‘定设备名称
     */
    private String deviceName;
    /**
     * ç»‘定设备mac
     */
    private String deviceMac;
    /**
     * è®¾å¤‡ç±»åž‹ï¼Œ0路灯,1led屏幕,2充电桩,3大气监测,4水质监测,5ip音柱,6lcd广告机,7摄像头,8杆体倾测,9一键救助
     */
    private Integer deviceType;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    private LocalDateTime createTime;
    /**
     *
     */
    private LocalDateTime updateTime;
    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}
dao/src/main/java/com/sandu/ximon/dao/enums/PoleBindingEnums.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,64 @@
package com.sandu.ximon.dao.enums;
/**
 * è®¾å¤‡çš„种类
 *
 * @author chenjiantian
 */
public enum PoleBindingEnums {
    /**
     * è·¯ç¯
     */
    LIGHT(0),
    /**
     * led
     */
    LED(1),
    /**
     * å……电桩
     */
    CHARGING_PILE(2),
    /**
     * å¤§æ°”
     */
    ATMOSPHERIC(3),
    /**
     * æ°´è´¨
     */
    WATER(4),
    /**
     * IP音柱
     */
    IP_SOUND(5),
    /**
     * LCD广告机
     */
    LCD_ADVERTISING(6),
    /**
     * æ‘„像头
     */
    CAMERA(7),
    /**
     * æ†ä½“倾侧
     */
    TILT(8),
    /**
     * ä¸€é”®æ•‘援
     */
    ONE_CLICK(9),
    ;
    private final Integer code;
    PoleBindingEnums(Integer code) {
        this.code = code;
    }
    public Integer getCode() {
        return code;
    }
}
dao/src/main/java/com/sandu/ximon/dao/mapper/PoleBindingMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
package com.sandu.ximon.dao.mapper;
import com.sandu.ximon.dao.domain.PoleBinding;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
 * @Entity com.sandu.ximon.dao.domain.PoleBinding
 */
public interface PoleBindingMapper extends BaseMapper<PoleBinding> {
}
dao/src/main/resources/mapper/PoleBindingMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
<?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.PoleBindingMapper">
    <resultMap id="BaseResultMap" type="com.sandu.ximon.dao.domain.PoleBinding">
            <id property="id" column="id" jdbcType="BIGINT"/>
            <result property="poleId" column="pole_id" jdbcType="BIGINT"/>
            <result property="deviceName" column="device_name" jdbcType="VARCHAR"/>
            <result property="deviceMac" column="device_mac" jdbcType="VARCHAR"/>
            <result property="deviceType" column="device_type" jdbcType="INTEGER"/>
            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
    </resultMap>
    <sql id="Base_Column_List">
        id,pole_id,device_name,
        device_mac,device_type,create_time,
        update_time
    </sql>
</mapper>
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java
@@ -1,21 +1,23 @@
package com.sandu.ximon.admin.controller;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.sandu.common.domain.ResponseVO;
import com.sandu.common.util.ResponseUtil;
import com.sandu.ximon.admin.param.GroupParam;
import com.sandu.ximon.admin.param.LampPostParam;
import com.sandu.ximon.admin.param.ReceiveParam;
import com.sandu.ximon.admin.service.LampPostService;
import com.sandu.ximon.dao.domain.LampPost;
import com.sandu.ximon.admin.param.PoleBindingParam;
import com.sandu.ximon.admin.param.PoleParam;
import com.sandu.ximon.admin.service.PoleService;
import com.sandu.ximon.dao.domain.Pole;
import lombok.AllArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
 * ç¯æ†æ¨¡å—以及设置分组到对应灯杆
 *
 * @author chenjiantian
 */
@RestController
@@ -23,71 +25,48 @@
@RequestMapping("/v1/pole")
public class PoleController {
    private final LampPostService poleService;
    private final PoleService poleService;
    @GetMapping("/add")
    public ResponseVO<Object> addLampPost(@RequestBody LampPostParam lampPostParam){
        return ResponseUtil.success( poleService.addLamp(lampPostParam));
    @PostMapping("/add")
    public ResponseVO<Object> addPole(@RequestBody @Validated PoleParam param) {
        return ResponseUtil.success(poleService.addPole(param));
    }
    @GetMapping("/update/{id}")
    public ResponseVO<Object> updateLampPost(@PathVariable Long id, @RequestBody LampPostParam lampPostParam){
        return ResponseUtil.success( poleService.updateLamp(id,lampPostParam));
    @PostMapping("/update/{poleId}")
    public ResponseVO<Object> updatePole(@PathVariable Long poleId, @RequestBody @Validated PoleParam param) {
        return ResponseUtil.success(poleService.updatePole(poleId, param));
    }
    @GetMapping("/delete/{id}")
    public ResponseVO<Object> deleteLampPost(@PathVariable Long id){
        return ResponseUtil.success(poleService.deleteLampPost(id));
    @PostMapping("/delete/{poleId}")
    public ResponseVO<Object> deletePole(@PathVariable Long poleId) {
        return ResponseUtil.success(poleService.deletePole(poleId));
    }
    @PostMapping("/setGroup")
    public ResponseVO<Object> setGroup(@RequestBody GroupParam groupParam){
        poleService.setGroup(groupParam.getGroup(), groupParam.getId());
        return ResponseUtil.success("分组设置成功");
    }
  //  @AnonymousAccess
    //@PostMapping("/list")
   /* public ResponseVO<Object> listLamp(){
        //List<LampPost> list = lampPostService.list();
        return ResponseUtil.success(lampPostService.list());
        //return ResponseUtil.success(lampPostService.listLamp());
    }*/
    /**
     * æŸ¥è¯¢ç¯æ†åˆ—表并携带在线状态
     * @return
     */
    @PostMapping("/list")
    public ResponseVO<Object> listLamp(){
        return ResponseUtil.success(poleService.queryStates());
    }
    /**
     * æ¢å¤å‡ºåŽ‚è®¾ç½®
     * @param id
     * @return
     */
    @GetMapping("/lightReset/{id}")
    public ResponseVO<Object> LightReset(@PathVariable Long id){
        return ResponseUtil.success(poleService.LightReset(id));
    }
    @GetMapping("/lsitLike")
    public ResponseVO<Object> list( @RequestBody ReceiveParam receiveParam){
        LambdaQueryWrapper<LampPost> wrapper = Wrappers.lambdaQuery(LampPost.class);
        if(receiveParam.getKeyWord()!=null){
            wrapper.like(LampPost::getLampId,receiveParam.getKeyWord())
    @GetMapping("/list")
    public ResponseVO<Object> listPole(@RequestParam String keyword) {
        LambdaQueryWrapper<Pole> wrapper = Wrappers.lambdaQuery(Pole.class);
        if (StrUtil.isNotBlank(keyword)) {
            wrapper.like(Pole::getPoleCode, keyword)
                    .or(lampPostLambdaQueryWrapper -> {
                        lampPostLambdaQueryWrapper.like(LampPost::getName,receiveParam.getKeyWord());
                        lampPostLambdaQueryWrapper.like(Pole::getPoleName, keyword);
                    });
        }
        List<LampPost> lsit= poleService.list(wrapper);
        return ResponseUtil.success(lsit);
        List<Pole> list = poleService.list(wrapper);
        return ResponseUtil.success(list);
    }
    /**
     * ç¯æ†ç»‘定设备
     */
    @PostMapping("/bind/{poleId}")
    public ResponseVO<Object> bindPole(@PathVariable Long poleId, @RequestBody @Validated PoleBindingParam param) {
        boolean result = poleService.bindPole(poleId, param);
        if (result) {
            return ResponseUtil.success("绑定成功");
        } else {
            return ResponseUtil.fail("绑定失败");
        }
    }
}
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleGroupController.java
@@ -3,10 +3,13 @@
import com.sandu.common.domain.ResponseVO;
import com.sandu.common.util.ResponseUtil;
import com.sandu.ximon.admin.param.PoleGroupParam;
import com.sandu.ximon.admin.param.PoleGroupRelationParam;
import com.sandu.ximon.admin.service.PoleGroupService;
import lombok.AllArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
 * åˆ†ç»„列表功能
@@ -39,4 +42,9 @@
    public ResponseVO<Object> listGroup() {
        return ResponseUtil.success(poleGroupService.groupList());
    }
    @PostMapping("/bind/{groupId}")
    public ResponseVO<Object> bindPole(@PathVariable Long groupId, PoleGroupRelationParam param) {
        return ResponseUtil.success(poleGroupService.bindPole(groupId,param.getPoleIdList()));
    }
}
ximon-admin/src/main/java/com/sandu/ximon/admin/param/PoleBindingParam.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package com.sandu.ximon.admin.param;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
/**
 * @author chenjiantian
 * @date 2021/12/13 18:22
 */
@Data
public class PoleBindingParam {
    @NotBlank(message = "设备Mac不能为空")
    private String deviceMac;
    @NotNull(message = "设备类型不能为空")
    private Integer deviceType;
    private String deviceName;
}
ximon-admin/src/main/java/com/sandu/ximon/admin/param/PoleGroupRelationParam.java
@@ -13,5 +13,5 @@
public class PoleGroupRelationParam {
    @NotEmpty(message = "灯杆id不能为空")
    private List<Long> poleId;
    private List<Long> poleIdList;
}
ximon-admin/src/main/java/com/sandu/ximon/admin/security/SecurityUtils.java
@@ -112,7 +112,7 @@
    }
    /**
     * èŽ·å–å®¢æˆ·è´¦å·çš„id
     * èŽ·å–å®¢æˆ·è´¦å·çš„id å¦‚果当前身份是运营人员,返回null
     * @return
     */
    public static Long getClientId() {
ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleBindingService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
package com.sandu.ximon.admin.service;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.sandu.common.service.impl.BaseServiceImpl;
import com.sandu.ximon.admin.param.PoleBindingParam;
import com.sandu.ximon.dao.domain.LightReportData;
import com.sandu.ximon.dao.domain.PoleBinding;
import com.sandu.ximon.dao.enums.PoleBindingEnums;
import com.sandu.ximon.dao.mapper.PoleBindingMapper;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
/**
 * @author chenjiantian
 * @date 2021/12/14 11:48
 */
@Service
@AllArgsConstructor
public class PoleBindingService extends BaseServiceImpl<PoleBindingMapper, PoleBinding> {
    private final LightReportDataService lightReportDataService;
    public boolean bindPole(Long poleId, PoleBindingParam param) {
        Integer deviceType = param.getDeviceType();
        if (PoleBindingEnums.LIGHT.getCode().equals(deviceType)) {
            PoleBinding poleBinding = new PoleBinding();
            poleBinding.setPoleId(poleId);
            poleBinding.setDeviceType(deviceType);
            poleBinding.setDeviceName(param.getDeviceName());
            poleBinding.setDeviceMac(param.getDeviceMac());
            return save(poleBinding);
        }
        return false;
    }
}
ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleGroupRelationService.java
@@ -1,14 +1,9 @@
package com.sandu.ximon.admin.service;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.sandu.common.execption.BusinessException;
import com.sandu.common.service.impl.BaseServiceImpl;
import com.sandu.ximon.admin.param.PoleGroupParam;
import com.sandu.ximon.admin.security.SecurityUtils;
import com.sandu.ximon.dao.domain.PoleGroup;
import com.sandu.ximon.dao.domain.PoleGroupRelation;
import com.sandu.ximon.dao.mapper.GroupMapper;
import com.sandu.ximon.dao.mapper.PoleGroupMapper;
import com.sandu.ximon.dao.mapper.PoleGroupRelationMapper;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
@@ -28,8 +23,11 @@
    /**
     * ç»‘定灯杆
     */
    public boolean saveBinding(Long groupId,List<Long> poleIdList) {
        remove(Wrappers.lambdaQuery(PoleGroupRelation.class).eq(PoleGroupRelation::getPoleGroupId,groupId));
    public boolean saveBinding(Long groupId, List<Long> poleIdList) {
        remove(Wrappers.lambdaQuery(PoleGroupRelation.class).eq(PoleGroupRelation::getPoleGroupId, groupId));
        if (CollectionUtil.isEmpty(poleIdList)) {
            return true;
        }
        List<PoleGroupRelation> batchList = new ArrayList<>();
        for (Long poleId : poleIdList) {
            PoleGroupRelation poleGroupRelation = new PoleGroupRelation();
ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleGroupService.java
@@ -62,11 +62,11 @@
    /**
     * ç»‘定灯杆
     */
    public boolean bindPole(Long groupId,List<Long> poleList) {
    public boolean bindPole(Long groupId,List<Long> poleIdList) {
        PoleGroup poleGroup = getById(groupId);
        if (poleGroup == null) {
            throw new BusinessException("未找到该分组");
        }
        return poleGroupRelationService.saveBinding(groupId,poleList);
        return poleGroupRelationService.saveBinding(groupId,poleIdList);
    }
}
ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java
@@ -3,14 +3,12 @@
import com.sandu.common.execption.BusinessException;
import com.sandu.common.redis.RedisService;
import com.sandu.common.service.impl.BaseServiceImpl;
import com.sandu.ximon.admin.param.LampPostParam;
import com.sandu.ximon.admin.param.PoleBindingParam;
import com.sandu.ximon.admin.param.PoleParam;
import com.sandu.ximon.admin.redis.LightKey;
import com.sandu.ximon.admin.security.CountSet;
import com.sandu.ximon.dao.domain.LampPost;
import com.sandu.ximon.dao.domain.Pole;
import com.sandu.ximon.dao.mapper.ClientMapper;
import com.sandu.ximon.dao.mapper.LampPostMapper;
import com.sandu.ximon.dao.domain.PoleBinding;
import com.sandu.ximon.dao.enums.PoleBindingEnums;
import com.sandu.ximon.dao.mapper.PoleMapper;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -29,11 +27,9 @@
@Slf4j
@AllArgsConstructor
public class PoleService extends BaseServiceImpl<PoleMapper, Pole> {
    private final CountSet countSet;
    private final LampCountService lampCountService;
    private final ClientMapper clientMapper;
    private final LampPostMapper lampPostMapper;
    private final RedisService redisService;
    private final PoleBindingService poleBindingService;
    public boolean addPole(PoleParam param) {
        Pole pole = new Pole();
@@ -56,14 +52,13 @@
    /**
     * åˆ é™¤ç¯æ†
     */
    public boolean deletePole(Long poleId){
    public boolean deletePole(Long poleId) {
        Pole pole = getById(poleId);
        if (pole == null) {
            throw new BusinessException("未找到该灯杆");
        }
        return removeById(poleId);
    }
    /**
@@ -84,4 +79,18 @@
        return Long.parseLong(sb.toString());
    }
    /**
     * ç¯æ†ç»‘定设备
     *
     * @param poleId ç»‘定灯杆id
     * @param param  è¢«ç»‘定设备信息
     * @return æ˜¯å¦æˆåŠŸ
     */
    public boolean bindPole(Long poleId, PoleBindingParam param) {
        Pole pole = getById(poleId);
        if (pole == null) {
            throw new BusinessException("未找到该灯杆");
        }
        return poleBindingService.bindPole( poleId,  param);
    }
}