dao/src/main/java/com/sandu/ximon/dao/bo/PlatformFileListBo.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,24 @@ package com.sandu.ximon.dao.bo; import lombok.Data; /** * @author LiuHaoNan * @date 2022/9/14 */ @Data public class PlatformFileListBo { private Long fileId; /** * æä»¶åç§° */ private String fileName; /** * æä»¶å¤§å° */ private Long fileSize; } dao/src/main/java/com/sandu/ximon/dao/domain/PlatformFile.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,52 @@ package com.sandu.ximon.dao.domain; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.io.Serializable; import java.util.Date; /** * å¹³å°æä»¶è¡¨ * * @TableName platform_file */ @TableName(value = "platform_file") @Data public class PlatformFile implements Serializable { /** * æä»¶id */ @TableId private Long fileId; /** * æä»¶åç§° */ private String fileName; /** * æä»¶å¤§å° */ private Long fileSize; /** * url */ private String fileUrl; /** * å建æ¶é´ */ private Date createTime; /** * æ´æ°æ¶é´ */ private Date updateTime; @TableField(exist = false) private static final long serialVersionUID = 1L; } dao/src/main/java/com/sandu/ximon/dao/domain/PlatformFileUser.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,35 @@ 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 lombok.Data; /** * æä»¶ç¨æ·ç»å®è¡¨ * @TableName platform_file_user */ @TableName(value ="platform_file_user") @Data public class PlatformFileUser implements Serializable { /** * */ @TableId private Long id; /** * æä»¶id */ private Long fileId; /** * ç¨æ·id */ private Long userId; @TableField(exist = false) private static final long serialVersionUID = 1L; } dao/src/main/java/com/sandu/ximon/dao/mapper/PlatformFileMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,24 @@ package com.sandu.ximon.dao.mapper; import com.sandu.ximon.dao.bo.PlatformFileListBo; import com.sandu.ximon.dao.domain.PlatformFile; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; import java.util.List; /** * @author Administrator * @description é对表ãplatform_file(å¹³å°æä»¶è¡¨)ãçæ°æ®åºæä½Mapper * @createDate 2022-09-14 09:52:22 * @Entity com.sandu.ximon.dao.domain.PlatformFile */ @Mapper public interface PlatformFileMapper extends BaseMapper<PlatformFile> { List<PlatformFileListBo> fileLiet(String keyword, Long userId); } dao/src/main/java/com/sandu/ximon/dao/mapper/PlatformFileUserMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,20 @@ package com.sandu.ximon.dao.mapper; import com.sandu.ximon.dao.domain.PlatformFileUser; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; /** * @author Administrator * @description é对表ãplatform_file_user(æä»¶ç¨æ·ç»å®è¡¨)ãçæ°æ®åºæä½Mapper * @createDate 2022-09-14 09:52:31 * @Entity com.sandu.ximon.dao.domain.PlatformFileUser */ @Mapper public interface PlatformFileUserMapper extends BaseMapper<PlatformFileUser> { } dao/src/main/resources/mapper/LightTaskPoleRelationMapper.xml
@@ -27,8 +27,9 @@ light_task_pole_relation t1 LEFT JOIN pole t2 ON t1.pole_id = t2.id <where> AND t1.task_id = #{taskId} t1.task_id = #{taskId} </where> GROUP BY t2.id </select> <select id="test" resultType="com.sandu.ximon.dao.bo.LightTaskPoleRelationBo"> dao/src/main/resources/mapper/PlatformFileMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,39 @@ <?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.PlatformFileMapper"> <resultMap id="BaseResultMap" type="com.sandu.ximon.dao.domain.PlatformFile"> <id property="fileId" column="file_id" jdbcType="BIGINT"/> <result property="fileName" column="file_name" jdbcType="VARCHAR"/> <result property="fileUrl" column="file_url" jdbcType="VARCHAR"/> <result property="fileSize" column="file_size" jdbcType="BIGINT"/> <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/> <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/> </resultMap> <sql id="Base_Column_List"> file_id ,file_name,file_size, create_time,update_time </sql> <select id="fileLiet" resultType="com.sandu.ximon.dao.bo.PlatformFileListBo"> SELECT * FROM platform_file t1 LEFT JOIN platform_file_user t2 ON t1.file_Id = t2.file_Id WHERE 1 =1 <if test="userId!=null"> AND t2.user_id = #{userId} </if> <if test="keyword != null and keyword != ''"> AND ( t1.file_name LIKE CONCAT('%', #{keyword},'%') ) </if> </select> </mapper> dao/src/main/resources/mapper/PlatformFileUserMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ <?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.PlatformFileUserMapper"> <resultMap id="BaseResultMap" type="com.sandu.ximon.dao.domain.PlatformFileUser"> <id property="id" column="id" jdbcType="BIGINT"/> <result property="fileId" column="file_id" jdbcType="BIGINT"/> <result property="userId" column="user_id" jdbcType="BIGINT"/> </resultMap> <sql id="Base_Column_List"> id,file_id,user_id </sql> </mapper> ximon-admin/src/main/java/com/sandu/ximon/admin/param/EditFileParam.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,25 @@ package com.sandu.ximon.admin.param; import lombok.Data; import java.util.List; /** * @author LiuHaoNan * @date 2022/9/14 * 平尿件 */ @Data public class EditFileParam { private Long fileId; /** * æä»¶åç§° */ private String fileName; private List<Long> fileIds; } ximon-admin/src/main/java/com/sandu/ximon/admin/param/PlatformFilePermissionParam.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,9 @@ package com.sandu.ximon.admin.param; /** * @author LiuHaoNan * @date 2022/9/14 * 平尿件 */ public class PlatformFilePermissionParam { } ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightTaskService.java
@@ -105,18 +105,24 @@ throw new BusinessException("ä¿åè·¯ç¯ä»»å¡å¤±è´¥"); } List<String> poleCodeList = new ArrayList<>(); if (CollectionUtil.isNotEmpty(param.getPoleIdList())) { List<Pole> poleList = SpringContextHolder.getBean(PoleService.class).listByIds(param.getPoleIdList()); //ä¼ å ¥çç¯æidéå List<Long> poleIdList = new ArrayList<>(); //å»é for (Long item : param.getPoleIdList()) { if (!poleIdList.contains(item)) { poleIdList.add(item); } } if (CollectionUtil.isNotEmpty(poleIdList)) { List<Pole> poleList = SpringContextHolder.getBean(PoleService.class).listByIds(poleIdList); if (CollectionUtil.isNotEmpty(poleList)) { poleCodeList = poleList.stream().map(Pole::getDeviceCode).collect(Collectors.toList()); } } String content = "{ä»»å¡IDï¼" + newLightTask.getTaskId() + "ï¼ ä»»å¡åï¼" + newLightTask.getTaskName() + "}ï¼{å 帧æä»¤" + newLightTask.getFramePayload() + "ï¼ ç¯æIDï¼" + param.getPoleIdList().toString() + "ï¼ æ§å¶çç¯å¤´å°åï¼" + param.getLightAddress() + " }"; String content = "{ä»»å¡IDï¼" + newLightTask.getTaskId() + "ï¼ ä»»å¡åï¼" + newLightTask.getTaskName() + "}ï¼{å 帧æä»¤" + newLightTask.getFramePayload() + "ï¼ ç¯æIDï¼" + poleIdList.toString() + "ï¼ æ§å¶çç¯å¤´å°åï¼" + param.getLightAddress() + " }"; StoreOperationRecordsUtils.storeOperationData(poleCodeList, null, "æ°å¢è·¯ç¯ä»»å¡", content); //ä¼ å ¥çç¯æidéå List<Long> poleIdList = param.getPoleIdList(); //è®°å½è¿äºç¯æåå çä»»å¡ List<LightTaskPoleRelation> oldLightTaskStatusAndPoles; if ("FFFF".equals(param.getLightAddress())) { @@ -156,7 +162,7 @@ * ä¸åè·¯ç¯ä»»å¡æ¥å¿è®°å½å¼å§ */ String content1 = "{ä»»å¡IDï¼" + newLightTask.getTaskId() + "ï¼ ä»»å¡åï¼" + newLightTask.getTaskName() + "}," + " ç¯æIDï¼" + param.getPoleIdList().toString() + " }"; String content1 = "{ä»»å¡IDï¼" + newLightTask.getTaskId() + "ï¼ ä»»å¡åï¼" + newLightTask.getTaskName() + "}," + " ç¯æIDï¼" + poleIdList.toString() + " }"; StoreOperationRecordsUtils.storeOperationData(poleCodeList, null, "ä¸åè·¯ç¯ä»»å¡", content1); /** * ä¸åè·¯ç¯ä»»å¡æ¥å¿è®°å½ç»æ @@ -172,7 +178,7 @@ lightTaskPoleRelationService.saveBatch(all); } if (!param.getPoleIdList().isEmpty() && num == newPoleMap.size()) { if (!poleIdList.isEmpty() && num == newPoleMap.size()) { //ææç¯æé½ä¸å失败 æ°å¢çä»»å¡ä¸ä¿ç removeById(newLightTask); throw new BusinessException("æä»¤ä¸å失败,è¯·æ£æ¥ç¯æç¶æåéæ°æ°å¢ä»»å¡"); @@ -217,7 +223,13 @@ //ç¼è¾åç¯æIDéå List<Long> poleIdList = param.getPoleIdList(); List<Long> poleIdList = new ArrayList<>(); //å»é for (Long item : param.getPoleIdList()) { if (!poleIdList.contains(item)) { poleIdList.add(item); } } if (poleIdList.isEmpty()) { throw new BusinessException("ç¼è¾ä»»å¡æ¶è¯·éæ©ç¯æ"); } @@ -225,12 +237,12 @@ List<LightTaskStatusAndPole> oldLightTaskStatusAndPoles = lightTaskPoleRelationService.listPoleAndStatusIdByTaskId(taskId); List<Long> oldList = oldLightTaskStatusAndPoles.stream().map(LightTaskStatusAndPole::getId).collect(Collectors.toList()); //夿param.getPoleIdList()䏿¯å¦ææ§çç¯æID (ç´æ¥ä¸å) List<Long> newPoleIdList = param.getPoleIdList().stream().filter(poleId -> !oldList.contains(poleId)).collect(Collectors.toList()); //夿param.getPoleIdList()䏿¯å¦ææ°çç¯æID (è¦çæä½) List<Long> oldPoleIdList = param.getPoleIdList().stream().filter(poleId -> oldList.contains(poleId)).collect(Collectors.toList()); //oldList䏿çç¯æIDï¼ä½æ¯param.getPoleIdList()䏿²¡æ (å ³ç¯æä½) List<Long> closeLight = oldList.stream().filter(poleId -> !param.getPoleIdList().contains(poleId)).collect(Collectors.toList()); //夿poleIdList䏿¯å¦ææ§çç¯æID (ç´æ¥ä¸å) List<Long> newPoleIdList = poleIdList.stream().filter(poleId -> !oldList.contains(poleId)).collect(Collectors.toList()); //夿poleIdList䏿¯å¦ææ°çç¯æID (è¦çæä½) List<Long> oldPoleIdList = poleIdList.stream().filter(poleId -> oldList.contains(poleId)).collect(Collectors.toList()); //oldList䏿çç¯æIDï¼ä½æ¯poleIdList䏿²¡æ (å ³ç¯æä½) List<Long> closeLight = oldList.stream().filter(poleId -> !poleIdList.contains(poleId)).collect(Collectors.toList()); //ååºè¦çæä½çå ³ç³»ä¿¡æ¯ @@ -317,13 +329,13 @@ * ç¼è¾è·¯ç¯ä»»å¡æ¥å¿è®°å½å¼å§ */ List<String> poleCodeList = new ArrayList<>(); if (CollectionUtil.isNotEmpty(param.getPoleIdList())) { List<Pole> poleList = SpringContextHolder.getBean(PoleService.class).listByIds(param.getPoleIdList()); if (CollectionUtil.isNotEmpty(poleIdList)) { List<Pole> poleList = SpringContextHolder.getBean(PoleService.class).listByIds(poleIdList); if (CollectionUtil.isNotEmpty(poleList)) { poleCodeList = poleList.stream().map(Pole::getDeviceCode).collect(Collectors.toList()); } } String content = "{ä»»å¡IDï¼" + newLightTask.getTaskId() + "ï¼ ä»»å¡åï¼" + newLightTask.getTaskName() + "}ï¼{å 帧æä»¤" + newLightTask.getFramePayload() + "ï¼ ç¯æIDï¼" + param.getPoleIdList().toString() + "ï¼ æ§å¶çç¯å¤´å°åï¼" + param.getLightAddress() + " }"; String content = "{ä»»å¡IDï¼" + newLightTask.getTaskId() + "ï¼ ä»»å¡åï¼" + newLightTask.getTaskName() + "}ï¼{å 帧æä»¤" + newLightTask.getFramePayload() + "ï¼ ç¯æIDï¼" + poleIdList.toString() + "ï¼ æ§å¶çç¯å¤´å°åï¼" + param.getLightAddress() + " }"; StoreOperationRecordsUtils.storeOperationData(poleCodeList, null, "ç¼è¾è·¯ç¯ä»»å¡", content); /** * ç¼è¾è·¯ç¯ä»»å¡æ¥å¿è®°å½ç»æ @@ -348,10 +360,9 @@ List<LightTaskPoleRelation> all = new ArrayList<>(); all.addAll(newPoleSuccess); all.addAll(oldPoleFail); all.addAll(oldPoleSuccess); all.addAll(oldPoleFail); all.addAll(closePoleFail); // all.addAll(oldPoleFail); // all.addAll(closePoleFail); List<Long> allPoleId = new ArrayList<>(); @@ -378,7 +389,7 @@ /** * ä¸åè·¯ç¯ä»»å¡æ¥å¿è®°å½å¼å§ */ String content1 = "{ä»»å¡IDï¼" + newLightTask.getTaskId() + "ï¼ ä»»å¡åï¼" + newLightTask.getTaskName() + "}," + " ç¯æIDï¼" + param.getPoleIdList().toString() + " }"; String content1 = "{ä»»å¡IDï¼" + newLightTask.getTaskId() + "ï¼ ä»»å¡åï¼" + newLightTask.getTaskName() + "}," + " ç¯æIDï¼" + poleCodeList.toString() + " }"; StoreOperationRecordsUtils.storeOperationData(poleCodeList, null, "ä¸åè·¯ç¯ä»»å¡", content1); /** * ä¸åè·¯ç¯ä»»å¡æ¥å¿è®°å½ç»æ @@ -390,7 +401,7 @@ throw new BusinessException("ç¼è¾å¤±è´¥,è¯·æ£æ¥åæè®¾å¤åç¼è¾åçè®¾å¤æ¯å¦å¨çº¿!"); } else if (!closePoleFail.isEmpty() && !newPoleSuccess.isEmpty() && !oldPoleFail.isEmpty()) { return "åä»»å¡ä¸åå¨ä¸åå¼å¸¸ï¼åä»»å¡ä¿çï¼å建æ°ä»»å¡è¿è¡ä¿å"; } else if (!newPoleFail.isEmpty() && !newPoleSuccess.isEmpty()) { } else if (!newPoleFail.isEmpty()) { return "æ°ä»»å¡ä¸åå¨ä¸åå¼å¸¸ï¼å¿½ç¥å¼å¸¸æä½çç¯æ"; } else { return "æä½å¼å¸¸"; ximon-admin/src/main/java/com/sandu/ximon/admin/service/PlatformFileService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,137 @@ 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.file.FileUploadDto; import com.sandu.common.file.impl.AliOssFileServiceImpl; import com.sandu.common.object.BaseConditionVO; import com.sandu.common.service.impl.BaseServiceImpl; import com.sandu.ximon.admin.param.EditFileParam; import com.sandu.ximon.admin.security.SecurityUtils; import com.sandu.ximon.dao.bo.PlatformFileListBo; import com.sandu.ximon.dao.domain.PlatformFile; import com.sandu.ximon.dao.domain.PlatformFileUser; import com.sandu.ximon.dao.enums.AdministratorEnums; import com.sandu.ximon.dao.mapper.PlatformFileMapper; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import java.util.List; /** * @author LiuHaoNan * @date 2022/9/14 */ @Slf4j @Service @AllArgsConstructor public class PlatformFileService extends BaseServiceImpl<PlatformFileMapper, PlatformFile> { private final AliOssFileServiceImpl aliOssFileService; private final PlatformFileUserService platformFileUserService; /** * æä»¶ä¸ä¼ * * @param file * @return */ public boolean addProgramFile(MultipartFile file) { PermissionToCheck(); FileUploadDto fileUploadDto = aliOssFileService.uploadFile(file); PlatformFile platformFile = new PlatformFile(); platformFile.setFileName(fileUploadDto.getFileName()); platformFile.setFileSize(fileUploadDto.getFileSize()); platformFile.setFileUrl(fileUploadDto.getFileUrl()); log.error("è¶ ç®¡è¿è¡æä»¶ä¸ä¼ [ æä»¶å:" + fileUploadDto.getFileName() + ", æä»¶å¤§å°: " + fileUploadDto.getFileSize() + ", url: " + fileUploadDto.getFileUrl() + "]"); return save(platformFile); } /** * ä¿®æ¹æä»¶åç§° * @param param * @return */ public boolean updateFileName(EditFileParam param) { PermissionToCheck(); if (param.getFileId() == null || param.getFileName().isEmpty()) { throw new BusinessException("ç¼è¾æ¶åæ°ä¸è½ä¸ºç©º!"); } PlatformFile byId = getById(param.getFileId()); if (byId == null) { throw new BusinessException("æªæ¾å°æä»¶!"); } byId.setFileName(param.getFileName()); return updateById(byId); } /** * å 餿件 * @param param * @return */ public boolean deleteFile(EditFileParam param) { PermissionToCheck(); if (param.getFileIds() == null || param.getFileIds().size() == 0) { throw new BusinessException("å 餿¶åæ°ä¸è½ä¸ºç©º!"); } List<PlatformFile> platformFiles = listByIds(param.getFileIds()); if (platformFiles == null && platformFiles.size() == 0) { throw new BusinessException("æªæ¾å°æä»¶!"); } return removeByIds(platformFiles); } /** * å¹³å°æä»¶èµæºå表 * @param vo * @param keyword * @return */ public Object fileList(BaseConditionVO vo, String keyword) { List<PlatformFileListBo> platformFileListBos; if (AdministratorEnums.ADMIN.getCode().equals(SecurityUtils.getUserDetails().getAdministratorType())) { PageHelper.startPage(vo.getPageNo(), vo.getPageSize()); platformFileListBos = baseMapper.fileLiet(keyword, null); } else { PageHelper.startPage(vo.getPageNo(), vo.getPageSize()); platformFileListBos = baseMapper.fileLiet(keyword, SecurityUtils.getUserId()); } return platformFileListBos; } /** * ä¸è½½æä»¶ * @param fileId * @return */ public String downFile(Long fileId) { if(!AdministratorEnums.ADMIN.getCode().equals(SecurityUtils.getUserDetails().getAdministratorType())){ PlatformFileUser one = platformFileUserService.getOne(Wrappers.lambdaQuery(PlatformFileUser.class) .eq(PlatformFileUser::getUserId, SecurityUtils.getUserId()).eq(PlatformFileUser::getFileId, fileId)); if (one == null) { throw new BusinessException("æ±æ,ä½ æ æä¸è½½ !"); } } PlatformFile byId = getById(fileId); return byId.getFileUrl(); } // public boolean setPermission(){} /** * æéæ ¡éª */ private void PermissionToCheck() { if (!AdministratorEnums.ADMIN.getCode().equals(SecurityUtils.getUserDetails().getAdministratorType())) { //è¶ ç®¡ throw new BusinessException("éè¶ ç®¡ä¸è½æä½"); } } } ximon-admin/src/main/java/com/sandu/ximon/admin/service/PlatformFileUserService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,14 @@ package com.sandu.ximon.admin.service; import com.sandu.common.service.impl.BaseServiceImpl; import com.sandu.ximon.dao.domain.PlatformFileUser; import com.sandu.ximon.dao.mapper.PlatformFileUserMapper; import org.springframework.stereotype.Service; /** * @author LiuHaoNan * @date 2022/9/14 */ @Service public class PlatformFileUserService extends BaseServiceImpl<PlatformFileUserMapper, PlatformFileUser> { }