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); } }