diff --git a/src/main/java/com/bonus/digitalSignage/basic/dao/TbSpanTowerMapper.java b/src/main/java/com/bonus/digitalSignage/basic/dao/TbSpanTowerMapper.java new file mode 100644 index 0000000..9bbd5e4 --- /dev/null +++ b/src/main/java/com/bonus/digitalSignage/basic/dao/TbSpanTowerMapper.java @@ -0,0 +1,15 @@ +package com.bonus.digitalSignage.basic.dao; + +import com.bonus.digitalSignage.basic.vo.TbSpanTowerVo; + +import java.util.List; + +public interface TbSpanTowerMapper { + void addTbSpanTower(TbSpanTowerVo tbSpanTowerVo); + + List getTbSpanTowerList(Long threeSpanId); + + void updateTbSpanTower(TbSpanTowerVo tbSpanTowerVo); + + void delTbSpanTower(Long threeSpanId); +} diff --git a/src/main/java/com/bonus/digitalSignage/basic/service/TbSpanTowerService.java b/src/main/java/com/bonus/digitalSignage/basic/service/TbSpanTowerService.java new file mode 100644 index 0000000..c34e7d2 --- /dev/null +++ b/src/main/java/com/bonus/digitalSignage/basic/service/TbSpanTowerService.java @@ -0,0 +1,35 @@ +package com.bonus.digitalSignage.basic.service; + +import com.bonus.digitalSignage.basic.vo.TbSpanTowerVo; + +import javax.xml.rpc.ServiceException; +import java.util.List; + +public interface TbSpanTowerService { + + /** + *跨越杆塔信息--新增 + * @param threeSpanId + * @param tbSpanTowerList + */ + void addTbSpanTowerList(Long threeSpanId, List tbSpanTowerList) throws Throwable; + + /** + * 跨越杆塔信息--列表 + * @param threeSpanId + * @return + */ + List getTbSpanTowerList(Long threeSpanId); + /** + * 跨越杆塔信息--修改 + * @param threeSpanId + * @return + */ + void updateTbSpanTower(List tbSpanTowerList, Long threeSpanId) throws ServiceException; + /** + * 跨越杆塔信息--删除 + * @param threeSpanId + * @return + */ + void delTbSpanTower(Long threeSpanId); +} diff --git a/src/main/java/com/bonus/digitalSignage/basic/service/impl/TbSpanTowerServiceImpl.java b/src/main/java/com/bonus/digitalSignage/basic/service/impl/TbSpanTowerServiceImpl.java new file mode 100644 index 0000000..3b702f9 --- /dev/null +++ b/src/main/java/com/bonus/digitalSignage/basic/service/impl/TbSpanTowerServiceImpl.java @@ -0,0 +1,67 @@ +package com.bonus.digitalSignage.basic.service.impl; + +import com.bonus.digitalSignage.basic.dao.TbSpanTowerMapper; +import com.bonus.digitalSignage.basic.service.TbSpanTowerService; +import com.bonus.digitalSignage.basic.vo.TbSpanTowerVo; +import com.bonus.digitalSignage.utils.ServerResponse; +import com.bonus.digitalSignage.utils.StrUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import javax.xml.rpc.ServiceException; +import java.util.List; + +/** + * @author 马三炮 + * @date 2025/4/28 + */ +@Service +@Slf4j +public class TbSpanTowerServiceImpl implements TbSpanTowerService { + + @Resource + private TbSpanTowerMapper tbSpanTowerMapper; + + @Override + public void addTbSpanTowerList(Long threeSpanId, List tbSpanTowerList) throws ServiceException { + for (TbSpanTowerVo tbSpanTowerVo:tbSpanTowerList) { + tbSpanTowerVo.setThreeSpanId(threeSpanId); + //判断经纬度是否合法 + if(!StrUtil.isValidLongitude(Double.parseDouble(tbSpanTowerVo.getLon())) || !StrUtil.isValidLatitude(Double.parseDouble(tbSpanTowerVo.getLat()))){ + throw new ServiceException("请输入正确的经纬度"); + } + tbSpanTowerVo.setBaiduLon(tbSpanTowerVo.getLon()); + tbSpanTowerVo.setBaiduLat(tbSpanTowerVo.getLat()); + tbSpanTowerMapper.addTbSpanTower(tbSpanTowerVo); + } + } + + @Override + public List getTbSpanTowerList(Long threeSpanId) { + return tbSpanTowerMapper.getTbSpanTowerList(threeSpanId); + } + + @Override + public void updateTbSpanTower(List tbSpanTowerList, Long threeSpanId) throws ServiceException { + for (TbSpanTowerVo tbSpanTowerVo:tbSpanTowerList) { + //判断经纬度是否合法 + if(!StrUtil.isValidLongitude(Double.parseDouble(tbSpanTowerVo.getLon())) || !StrUtil.isValidLatitude(Double.parseDouble(tbSpanTowerVo.getLat()))){ + throw new ServiceException("请输入正确的经纬度"); + } + if (tbSpanTowerVo.getId()!=null){ + tbSpanTowerMapper.updateTbSpanTower(tbSpanTowerVo); + }else { + tbSpanTowerVo.setThreeSpanId(threeSpanId); + tbSpanTowerVo.setBaiduLon(tbSpanTowerVo.getLon()); + tbSpanTowerVo.setBaiduLat(tbSpanTowerVo.getLat()); + tbSpanTowerMapper.addTbSpanTower(tbSpanTowerVo); + } + } + } + + @Override + public void delTbSpanTower(Long threeSpanId) { + tbSpanTowerMapper.delTbSpanTower(threeSpanId); + } +} diff --git a/src/main/java/com/bonus/digitalSignage/basic/service/impl/TbThreeSpanServiceImpl.java b/src/main/java/com/bonus/digitalSignage/basic/service/impl/TbThreeSpanServiceImpl.java index 9e3e5b3..ed696f0 100644 --- a/src/main/java/com/bonus/digitalSignage/basic/service/impl/TbThreeSpanServiceImpl.java +++ b/src/main/java/com/bonus/digitalSignage/basic/service/impl/TbThreeSpanServiceImpl.java @@ -1,13 +1,17 @@ package com.bonus.digitalSignage.basic.service.impl; import com.bonus.digitalSignage.basic.dao.TbThreeSpanMapper; +import com.bonus.digitalSignage.basic.service.TbSpanTowerService; import com.bonus.digitalSignage.basic.service.TbThreeSpanService; +import com.bonus.digitalSignage.basic.vo.TbSpanTowerVo; import com.bonus.digitalSignage.basic.vo.TbThreeSpanVo; import com.bonus.digitalSignage.utils.ServerResponse; import com.bonus.digitalSignage.utils.UserUtil; import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.interceptor.TransactionAspectSupport; import javax.annotation.Resource; import java.util.Date; @@ -24,6 +28,9 @@ public class TbThreeSpanServiceImpl implements TbThreeSpanService { @Resource private TbThreeSpanMapper tbThreeSpanMapper; + @Resource + private TbSpanTowerService tbSpanTowerService; + /** * 三跨管理-查询列表 * @param data @@ -33,6 +40,13 @@ public class TbThreeSpanServiceImpl implements TbThreeSpanService { public ServerResponse getTbThreeSpanList(TbThreeSpanVo data) { try { List tbThreeSpanVoList = tbThreeSpanMapper.getTbThreeSpanList(data); + //获取跨越杆塔信息 + if (!tbThreeSpanVoList.isEmpty()){ + for (TbThreeSpanVo tbThreeSpanVo:tbThreeSpanVoList) { + List tbSpanTowerList = tbSpanTowerService.getTbSpanTowerList(tbThreeSpanVo.getId()); + tbThreeSpanVo.setTbSpanTowerList(tbSpanTowerList); + } + } PageInfo pageInfo = new PageInfo<>(tbThreeSpanVoList); return ServerResponse.createSuccessPage(pageInfo, data.getPageNum(), data.getPageSize()); } catch (Exception e) { @@ -50,6 +64,8 @@ public class TbThreeSpanServiceImpl implements TbThreeSpanService { public ServerResponse getTbThreeSpanById(TbThreeSpanVo data) { try { TbThreeSpanVo tbThreeSpanVo = tbThreeSpanMapper.getTbThreeSpanById(data); + List tbSpanTowerList = tbSpanTowerService.getTbSpanTowerList(tbThreeSpanVo.getId()); + tbThreeSpanVo.setTbSpanTowerList(tbSpanTowerList); return ServerResponse.createSuccess(tbThreeSpanVo); } catch (Exception e) { log.error(e.toString(), e); @@ -63,15 +79,22 @@ public class TbThreeSpanServiceImpl implements TbThreeSpanService { * @return */ @Override + @Transactional public ServerResponse addTbThreeSpan(TbThreeSpanVo data) { try { Long userId = UserUtil.getLoginUser().getId(); data.setCreateUserId(userId); data.setCreateTime(new Date()); tbThreeSpanMapper.addTbThreeSpan(data); + //获取跨越杆塔信息 + List tbSpanTowerList = data.getTbSpanTowerList(); + if (tbSpanTowerList.size()>0){ + tbSpanTowerService.addTbSpanTowerList(data.getId(),tbSpanTowerList); + } return ServerResponse.createSuccess("三跨管理-新增成功"); - } catch (Exception e) { + } catch (Throwable e) { log.error(e.toString(), e); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return ServerResponse.createErroe("三跨管理-新增失败"); } } @@ -82,11 +105,17 @@ public class TbThreeSpanServiceImpl implements TbThreeSpanService { * @return */ @Override + @Transactional public ServerResponse updateTbThreeSpan(TbThreeSpanVo data) { try { Long userId = UserUtil.getLoginUser().getId(); data.setUpdateUserId(userId); tbThreeSpanMapper.updateTbThreeSpan(data); + List tbSpanTowerList =data.getTbSpanTowerList(); + //获取跨越杆塔信息 + if (!tbSpanTowerList.isEmpty()){ + tbSpanTowerService.updateTbSpanTower(tbSpanTowerList,data.getId()); + } return ServerResponse.createSuccess("三跨管理-修改成功"); } catch (Exception e) { log.error(e.toString(), e); @@ -103,6 +132,11 @@ public class TbThreeSpanServiceImpl implements TbThreeSpanService { public ServerResponse delTbThreeSpan(TbThreeSpanVo data) { try { tbThreeSpanMapper.delTbThreeSpan(data); + List tbSpanTowerList =data.getTbSpanTowerList(); + //获取跨越杆塔信息 + if (!tbSpanTowerList.isEmpty()){ + tbSpanTowerService.delTbSpanTower(data.getId()); + } return ServerResponse.createSuccess("三跨管理-删除成功"); } catch (Exception e) { log.error(e.toString(), e); diff --git a/src/main/java/com/bonus/digitalSignage/basic/vo/TbSpanTowerVo.java b/src/main/java/com/bonus/digitalSignage/basic/vo/TbSpanTowerVo.java new file mode 100644 index 0000000..7f2aeb4 --- /dev/null +++ b/src/main/java/com/bonus/digitalSignage/basic/vo/TbSpanTowerVo.java @@ -0,0 +1,49 @@ +package com.bonus.digitalSignage.basic.vo; + +import lombok.Data; + +/** + * @author 马三炮 + * @date 2025/4/28 + */ +@Data +public class TbSpanTowerVo { + + /** + * id + */ + private Long id; + + /** + * 三跨id + */ + private Long threeSpanId; + + /** + * 经度 + */ + private String lon; + + /** + * 纬度 + */ + private String lat; + + /** + * 百度地图—经度 + */ + private String baiduLon; + + /** + * 百度地图-纬度 + */ + private String baiduLat; + + + /** + * 排序 + */ + private int sort; + + +} diff --git a/src/main/java/com/bonus/digitalSignage/basic/vo/TbThreeSpanVo.java b/src/main/java/com/bonus/digitalSignage/basic/vo/TbThreeSpanVo.java index f13f8d5..58b8fea 100644 --- a/src/main/java/com/bonus/digitalSignage/basic/vo/TbThreeSpanVo.java +++ b/src/main/java/com/bonus/digitalSignage/basic/vo/TbThreeSpanVo.java @@ -4,6 +4,7 @@ import com.bonus.digitalSignage.utils.Excel; import lombok.Data; import java.util.Date; +import java.util.List; /** * @author 马三炮 @@ -123,6 +124,11 @@ public class TbThreeSpanVo { */ private Long updateUserId; + /** + * 跨越杆塔信息 + */ + private List tbSpanTowerList; + /** * 搜索 */ diff --git a/src/main/resources/mappers/basic/TbSpanTowerMapper.xml b/src/main/resources/mappers/basic/TbSpanTowerMapper.xml new file mode 100644 index 0000000..4643131 --- /dev/null +++ b/src/main/resources/mappers/basic/TbSpanTowerMapper.xml @@ -0,0 +1,47 @@ + + + + + + insert into tb_span_tower + + three_span_id, + lon, + lat, + baidu_lon, + baidu_lat, + sort, + is_actvice + + + #{threeSpanId}, + #{lon}, + #{lat}, + #{baiduLon}, + #{baiduLat}, + #{sort}, + 1 + + + + update tb_span_tower + + lon = #{lon}, + lat = #{lat}, + baidu_lon = #{baiduLon}, + baidu_lat = #{baiduLat}, + sort = #{sort}, + + where id = #{id} + + + update tb_span_tower set is_active = '0' where three_span_id = #{threeSpanId} + + + diff --git a/src/main/resources/mappers/basic/TbThreeSpanMapper.xml b/src/main/resources/mappers/basic/TbThreeSpanMapper.xml index 99efa5f..c04cd29 100644 --- a/src/main/resources/mappers/basic/TbThreeSpanMapper.xml +++ b/src/main/resources/mappers/basic/TbThreeSpanMapper.xml @@ -2,7 +2,7 @@ - + insert into tb_three_span pro_id,