feat:增加标注分组
This commit is contained in:
parent
c7793d7c71
commit
ce41e4a490
|
|
@ -0,0 +1,123 @@
|
|||
package com.ruoyi.airline.controller;
|
||||
|
||||
import com.ruoyi.airline.api.domain.AirlineMarkerGroupVO;
|
||||
import com.ruoyi.airline.api.domain.AirlineMarkerVO;
|
||||
import com.ruoyi.airline.controller.convert.AirlineMarkerControllerConvert;
|
||||
import com.ruoyi.airline.controller.convert.AirlineMarkerGroupControllerConvert;
|
||||
import com.ruoyi.airline.service.api.IAirlineMarkerGroupService;
|
||||
import com.ruoyi.airline.service.dto.AirlineMarkerDTO;
|
||||
import com.ruoyi.airline.service.dto.AirlineMarkerGroupDTO;
|
||||
import com.ruoyi.common.core.web.controller.BaseController;
|
||||
import com.ruoyi.common.core.web.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.web.page.TableDataInfo;
|
||||
import com.ruoyi.common.security.utils.SecurityUtils;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 标注分组
|
||||
*
|
||||
* @author 拓恒
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/markerGroup")
|
||||
@Tag(name = "标注分组管理")
|
||||
public class AirlineMarkerGroupController extends BaseController {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(AirlineMarkerGroupController.class);
|
||||
|
||||
@Autowired
|
||||
private IAirlineMarkerGroupService iAirlineMarkerGroupService;
|
||||
|
||||
/**
|
||||
* 获取标注分组列表
|
||||
*
|
||||
* @param markerGroupVO 查询条件
|
||||
*/
|
||||
@GetMapping()
|
||||
@Operation(summary = "获取所有的标注分组")
|
||||
public TableDataInfo index(AirlineMarkerGroupVO markerGroupVO) {
|
||||
startPage();
|
||||
AirlineMarkerGroupDTO dto = AirlineMarkerGroupControllerConvert.to(markerGroupVO);
|
||||
List<AirlineMarkerGroupDTO> list = iAirlineMarkerGroupService.selectGroupList(dto);
|
||||
List<AirlineMarkerGroupVO> result = AirlineMarkerGroupControllerConvert.toApiDomainList(list);
|
||||
return getDataTable(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增分组
|
||||
*/
|
||||
@PostMapping
|
||||
@Operation(summary = "新增分组")
|
||||
public AjaxResult add(@Validated @RequestBody AirlineMarkerGroupVO group) {
|
||||
group.setCreateBy(SecurityUtils.getUserId().toString());
|
||||
group.setUpdateBy(SecurityUtils.getUserId().toString());
|
||||
AirlineMarkerGroupDTO dto = AirlineMarkerGroupControllerConvert.to(group);
|
||||
if (iAirlineMarkerGroupService.checkGroupNameUnique(dto)) {
|
||||
return error("新增分组'" + group.getGroupName() + "'失败,分组名称已存在");
|
||||
}
|
||||
return toAjax(iAirlineMarkerGroupService.insertGroup(dto));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改分组
|
||||
*/
|
||||
@PutMapping
|
||||
@Operation(summary = "修改分组")
|
||||
public AjaxResult edit(@Validated @RequestBody AirlineMarkerGroupVO group) {
|
||||
group.setUpdateBy(SecurityUtils.getUserId().toString());
|
||||
AirlineMarkerGroupDTO dto = AirlineMarkerGroupControllerConvert.to(group);
|
||||
if (iAirlineMarkerGroupService.checkGroupNameUnique(dto)) {
|
||||
return error("修改分组'" + group.getGroupName() + "'失败,分组名称已存在");
|
||||
}
|
||||
return toAjax(iAirlineMarkerGroupService.updateGroup(dto));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除分组
|
||||
*/
|
||||
@DeleteMapping("/delete/{groupId}")
|
||||
@Operation(summary = "删除分组")
|
||||
public AjaxResult removeByQueryParam(@PathVariable Long groupId) {
|
||||
return toAjax(iAirlineMarkerGroupService.deleteGroupById(groupId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除分组
|
||||
*/
|
||||
@DeleteMapping("/batchDelete")
|
||||
@Operation(summary = "批量删除分组")
|
||||
public AjaxResult batchRemove(@RequestBody List<Long> groupIds) {
|
||||
return toAjax(iAirlineMarkerGroupService.batchDeleteGroup(groupIds));
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据ID查询分组
|
||||
*/
|
||||
@GetMapping("/get/{groupId}")
|
||||
@Operation(summary = "根据ID查询分组")
|
||||
public AjaxResult getInfo(@PathVariable Long groupId) {
|
||||
AirlineMarkerGroupDTO dto = iAirlineMarkerGroupService.selectGroupById(groupId);
|
||||
AirlineMarkerGroupVO result = AirlineMarkerGroupControllerConvert.from(dto);
|
||||
return success(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 在指定分组下新增标注
|
||||
*/
|
||||
@PostMapping("/addMarker/{groupId}")
|
||||
@Operation(summary = "在指定分组下新增标注")
|
||||
public AjaxResult addMarker(@PathVariable Long groupId, @Validated @RequestBody AirlineMarkerVO marker) {
|
||||
marker.setCreateBy(SecurityUtils.getUserId().toString());
|
||||
marker.setUpdateBy(SecurityUtils.getUserId().toString());
|
||||
AirlineMarkerDTO dto = AirlineMarkerControllerConvert.to(marker);
|
||||
return toAjax(iAirlineMarkerGroupService.insertMarkerWithGroup(groupId, dto));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
package com.ruoyi.airline.controller.convert;
|
||||
|
||||
import com.ruoyi.airline.api.domain.AirlineMarkerGroupVO;
|
||||
import com.ruoyi.airline.service.dto.AirlineMarkerGroupDTO;
|
||||
import com.ruoyi.common.core.utils.BaseConvert;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 标注分组Controller转换类
|
||||
* 用于Controller VO和Service DTO之间的转换
|
||||
*
|
||||
* @author 拓恒
|
||||
*/
|
||||
public class AirlineMarkerGroupControllerConvert extends BaseConvert<AirlineMarkerGroupDTO, AirlineMarkerGroupVO>
|
||||
{
|
||||
|
||||
private static final AirlineMarkerGroupControllerConvert INSTANCE = new AirlineMarkerGroupControllerConvert();
|
||||
|
||||
private AirlineMarkerGroupControllerConvert() {
|
||||
super(AirlineMarkerGroupDTO.class, AirlineMarkerGroupVO.class);
|
||||
}
|
||||
|
||||
public static AirlineMarkerGroupVO from(AirlineMarkerGroupDTO dto)
|
||||
{
|
||||
return INSTANCE.innerFrom(dto);
|
||||
}
|
||||
|
||||
public static AirlineMarkerGroupDTO to(AirlineMarkerGroupVO vo)
|
||||
{
|
||||
return INSTANCE.innerTo(vo);
|
||||
}
|
||||
|
||||
public static List<AirlineMarkerGroupVO> fromList(List<AirlineMarkerGroupDTO> dtoList)
|
||||
{
|
||||
return INSTANCE.innerFromList(dtoList);
|
||||
}
|
||||
|
||||
public static List<AirlineMarkerGroupDTO> toList(List<AirlineMarkerGroupVO> voList)
|
||||
{
|
||||
return INSTANCE.innerToList(voList);
|
||||
}
|
||||
|
||||
public static List<AirlineMarkerGroupVO> toApiDomainList(List<AirlineMarkerGroupDTO> dtoList) {
|
||||
if (dtoList == null) {
|
||||
return null;
|
||||
}
|
||||
return fromList(dtoList);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
package com.ruoyi.airline.domain.api;
|
||||
|
||||
import com.ruoyi.airline.domain.model.AirlineMarker;
|
||||
import com.ruoyi.airline.domain.model.AirlineMarkerGroup;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 标注分组管理
|
||||
*
|
||||
* @author 拓恒
|
||||
*/
|
||||
public interface IAirlineMarkerGroupDomain {
|
||||
|
||||
/**
|
||||
* 软删除
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
int deleteGroup(AirlineMarkerGroup model);
|
||||
|
||||
/**
|
||||
* 检查分组名称是否唯一
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
boolean checkGroupNameUnique(AirlineMarkerGroup model);
|
||||
|
||||
int updateGroup(AirlineMarkerGroup model);
|
||||
|
||||
int insertGroup(AirlineMarkerGroup model);
|
||||
|
||||
List<AirlineMarkerGroup> selectGroupList(AirlineMarkerGroup model);
|
||||
|
||||
AirlineMarkerGroup selectGroupById(Long groupId);
|
||||
|
||||
List<AirlineMarker> selectMarkerListByUserId(AirlineMarker model);
|
||||
}
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
package com.ruoyi.airline.domain.convert;
|
||||
|
||||
import com.ruoyi.common.core.utils.BaseConvert;
|
||||
import com.ruoyi.airline.domain.model.AirlineMarkerGroup;
|
||||
import com.ruoyi.airline.mapper.entity.AirlineMarkerGroupEntity;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 标注分组Domain转换类
|
||||
* 用于Domain模型和Mapper实体之间的转换
|
||||
*
|
||||
* @author 拓恒
|
||||
*/
|
||||
public class AirlineMarkerGroupDomainConvert extends BaseConvert<AirlineMarkerGroupEntity, AirlineMarkerGroup>
|
||||
{
|
||||
private static final AirlineMarkerGroupDomainConvert INSTANCE = new AirlineMarkerGroupDomainConvert();
|
||||
|
||||
private AirlineMarkerGroupDomainConvert() {
|
||||
super(AirlineMarkerGroupEntity.class, AirlineMarkerGroup.class);
|
||||
}
|
||||
|
||||
public static AirlineMarkerGroup from(AirlineMarkerGroupEntity entity)
|
||||
{
|
||||
return INSTANCE.innerFrom(entity);
|
||||
}
|
||||
|
||||
public static AirlineMarkerGroupEntity to(AirlineMarkerGroup model)
|
||||
{
|
||||
return INSTANCE.innerTo(model);
|
||||
}
|
||||
|
||||
public static List<AirlineMarkerGroup> fromList(List<AirlineMarkerGroupEntity> entityList)
|
||||
{
|
||||
return INSTANCE.innerFromList(entityList);
|
||||
}
|
||||
|
||||
public static List<AirlineMarkerGroupEntity> toList(List<AirlineMarkerGroup> modelList)
|
||||
{
|
||||
return INSTANCE.innerToList(modelList);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,70 @@
|
|||
package com.ruoyi.airline.domain.impl;
|
||||
|
||||
import com.ruoyi.airline.domain.api.IAirlineMarkerGroupDomain;
|
||||
import com.ruoyi.airline.domain.convert.AirlineMarkerGroupDomainConvert;
|
||||
import com.ruoyi.airline.domain.convert.AirlineMarkerDomainConvert;
|
||||
import com.ruoyi.airline.domain.model.AirlineMarker;
|
||||
import com.ruoyi.airline.domain.model.AirlineMarkerGroup;
|
||||
import com.ruoyi.airline.mapper.AirlineMarkerGroupMapper;
|
||||
import com.ruoyi.airline.mapper.entity.AirlineMarkerEntity;
|
||||
import com.ruoyi.airline.mapper.entity.AirlineMarkerGroupEntity;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 标注分组管理
|
||||
*
|
||||
* @author 拓恒
|
||||
*/
|
||||
@Component
|
||||
public class AirlineMarkerGroupDomainImpl implements IAirlineMarkerGroupDomain {
|
||||
|
||||
@Autowired
|
||||
private AirlineMarkerGroupMapper airlineMarkerGroupMapper;
|
||||
|
||||
@Override
|
||||
public int deleteGroup(AirlineMarkerGroup model) {
|
||||
model.setDelFlag(1L);
|
||||
AirlineMarkerGroupEntity entity = AirlineMarkerGroupDomainConvert.to(model);
|
||||
return airlineMarkerGroupMapper.deleteGroup(entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkGroupNameUnique(AirlineMarkerGroup model) {
|
||||
AirlineMarkerGroupEntity entity = AirlineMarkerGroupDomainConvert.to(model);
|
||||
return airlineMarkerGroupMapper.checkGroupNameUnique(entity) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int updateGroup(AirlineMarkerGroup model) {
|
||||
AirlineMarkerGroupEntity entity = AirlineMarkerGroupDomainConvert.to(model);
|
||||
return airlineMarkerGroupMapper.updateGroup(entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int insertGroup(AirlineMarkerGroup model) {
|
||||
AirlineMarkerGroupEntity entity = AirlineMarkerGroupDomainConvert.to(model);
|
||||
return airlineMarkerGroupMapper.insertGroup(entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AirlineMarkerGroup> selectGroupList(AirlineMarkerGroup model) {
|
||||
AirlineMarkerGroupEntity entity = AirlineMarkerGroupDomainConvert.to(model);
|
||||
return AirlineMarkerGroupDomainConvert.fromList(airlineMarkerGroupMapper.selectGroupList(entity));
|
||||
}
|
||||
|
||||
@Override
|
||||
public AirlineMarkerGroup selectGroupById(Long groupId) {
|
||||
AirlineMarkerGroupEntity entity = airlineMarkerGroupMapper.selectGroupById(groupId);
|
||||
return AirlineMarkerGroupDomainConvert.from(entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AirlineMarker> selectMarkerListByUserId(AirlineMarker model) {
|
||||
// 这里需要在 AirlineMarkerGroupMapper 中添加对应的方法
|
||||
// 暂时返回空列表,后续需要实现
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
package com.ruoyi.airline.domain.model;
|
||||
|
||||
import com.ruoyi.common.core.web.domain.ExBaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 标注分组
|
||||
*
|
||||
* @author 拓恒
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class AirlineMarkerGroup extends ExBaseEntity {
|
||||
/**
|
||||
* 分组ID
|
||||
*/
|
||||
private Long groupId;
|
||||
|
||||
/**
|
||||
* 分组名称
|
||||
*/
|
||||
private String groupName;
|
||||
|
||||
/**
|
||||
* 组关联的标注
|
||||
*/
|
||||
private List<AirlineMarker> groupInfos;
|
||||
|
||||
/**
|
||||
* 标注数量
|
||||
*/
|
||||
private Integer markerCount;
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
|
||||
.append("groupId", getGroupId())
|
||||
.append("groupName", getGroupName())
|
||||
.append("markerCount", getMarkerCount())
|
||||
.toString();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
package com.ruoyi.airline.mapper;
|
||||
|
||||
import com.ruoyi.airline.mapper.entity.AirlineMarkerGroupEntity;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 标注分组表 airline_marker_group
|
||||
*
|
||||
* @author 拓恒
|
||||
*/
|
||||
public interface AirlineMarkerGroupMapper {
|
||||
|
||||
int checkGroupNameUnique(AirlineMarkerGroupEntity model);
|
||||
|
||||
int deleteGroup(AirlineMarkerGroupEntity entity);
|
||||
|
||||
int updateGroup(AirlineMarkerGroupEntity entity);
|
||||
|
||||
int insertGroup(AirlineMarkerGroupEntity entity);
|
||||
|
||||
List<AirlineMarkerGroupEntity> selectGroupList(AirlineMarkerGroupEntity entity);
|
||||
|
||||
AirlineMarkerGroupEntity selectGroupById(Long groupId);
|
||||
}
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
package com.ruoyi.airline.mapper.entity;
|
||||
|
||||
import com.ruoyi.common.core.web.domain.ExBaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
|
||||
/**
|
||||
* 标注分组表 airline_marker_group
|
||||
*
|
||||
* @author 拓恒
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class AirlineMarkerGroupEntity extends ExBaseEntity {
|
||||
/**
|
||||
* 分组ID
|
||||
*/
|
||||
private Long groupId;
|
||||
|
||||
/**
|
||||
* 分组名称
|
||||
*/
|
||||
private String groupName;
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
|
||||
.append("groupId", getGroupId())
|
||||
.append("groupName", getGroupName())
|
||||
.toString();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
package com.ruoyi.airline.service.api;
|
||||
|
||||
import com.ruoyi.airline.service.dto.AirlineMarkerDTO;
|
||||
import com.ruoyi.airline.service.dto.AirlineMarkerGroupDTO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 标注分组管理
|
||||
*
|
||||
* @author 拓恒
|
||||
*/
|
||||
public interface IAirlineMarkerGroupService {
|
||||
|
||||
/**
|
||||
* 删除分组(软删除)
|
||||
* @param groupId 分组ID
|
||||
* @return 删除结果
|
||||
*/
|
||||
int deleteGroupById(Long groupId);
|
||||
|
||||
/**
|
||||
* 检查分组名称是否唯一
|
||||
* @param group 分组信息
|
||||
* @return 是否唯一
|
||||
*/
|
||||
boolean checkGroupNameUnique(AirlineMarkerGroupDTO group);
|
||||
|
||||
/**
|
||||
* 更新分组
|
||||
* @param group 分组信息
|
||||
* @return 更新结果
|
||||
*/
|
||||
int updateGroup(AirlineMarkerGroupDTO group);
|
||||
|
||||
/**
|
||||
* 新增分组
|
||||
* @param group 分组信息
|
||||
* @return 新增结果
|
||||
*/
|
||||
int insertGroup(AirlineMarkerGroupDTO group);
|
||||
|
||||
/**
|
||||
* 查询分组列表
|
||||
* @param dto 查询条件
|
||||
* @return 分组列表
|
||||
*/
|
||||
List<AirlineMarkerGroupDTO> selectGroupList(AirlineMarkerGroupDTO dto);
|
||||
|
||||
/**
|
||||
* 根据ID查询分组
|
||||
* @param groupId 分组ID
|
||||
* @return 分组信息
|
||||
*/
|
||||
AirlineMarkerGroupDTO selectGroupById(Long groupId);
|
||||
|
||||
/**
|
||||
* 在指定分组下新增标注
|
||||
* @param groupId 分组ID
|
||||
* @param marker 标注信息
|
||||
* @return 新增结果
|
||||
*/
|
||||
int insertMarkerWithGroup(Long groupId, AirlineMarkerDTO marker);
|
||||
|
||||
/**
|
||||
* 批量删除分组
|
||||
* @param groupIds 分组ID列表
|
||||
* @return 删除数量
|
||||
*/
|
||||
int batchDeleteGroup(List<Long> groupIds);
|
||||
}
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
package com.ruoyi.airline.service.convert;
|
||||
|
||||
import com.ruoyi.common.core.utils.BaseConvert;
|
||||
import com.ruoyi.airline.domain.model.AirlineMarkerGroup;
|
||||
import com.ruoyi.airline.service.dto.AirlineMarkerGroupDTO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 标注分组Domain转换类
|
||||
* 用于Domain模型和Service DTO之间的转换
|
||||
*
|
||||
* @author 拓恒
|
||||
*/
|
||||
public class AirlineMarkerGroupServiceConvert extends BaseConvert<AirlineMarkerGroup, AirlineMarkerGroupDTO>
|
||||
{
|
||||
|
||||
private static final AirlineMarkerGroupServiceConvert INSTANCE = new AirlineMarkerGroupServiceConvert();
|
||||
|
||||
private AirlineMarkerGroupServiceConvert() {
|
||||
super(AirlineMarkerGroup.class, AirlineMarkerGroupDTO.class);
|
||||
}
|
||||
|
||||
public static AirlineMarkerGroupDTO from(AirlineMarkerGroup model)
|
||||
{
|
||||
return INSTANCE.innerFrom(model);
|
||||
}
|
||||
|
||||
public static AirlineMarkerGroup to(AirlineMarkerGroupDTO dto)
|
||||
{
|
||||
return INSTANCE.innerTo(dto);
|
||||
}
|
||||
|
||||
public static List<AirlineMarkerGroupDTO> fromList(List<AirlineMarkerGroup> modelList)
|
||||
{
|
||||
return INSTANCE.innerFromList(modelList);
|
||||
}
|
||||
|
||||
public static List<AirlineMarkerGroup> toList(List<AirlineMarkerGroupDTO> dtoList)
|
||||
{
|
||||
return INSTANCE.innerToList(dtoList);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
package com.ruoyi.airline.service.dto;
|
||||
|
||||
import com.ruoyi.common.core.web.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 标注分组表 airline_marker_group
|
||||
*
|
||||
* @author 拓恒
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class AirlineMarkerGroupDTO extends BaseEntity {
|
||||
/**
|
||||
* 分组ID
|
||||
*/
|
||||
private Long groupId;
|
||||
|
||||
/**
|
||||
* 分组名称
|
||||
*/
|
||||
private String groupName;
|
||||
|
||||
/**
|
||||
* 组关联的标注
|
||||
*/
|
||||
private List<AirlineMarkerDTO> groupInfos;
|
||||
|
||||
/**
|
||||
* 标注数量
|
||||
*/
|
||||
private Integer markerCount;
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
|
||||
.append("groupId", getGroupId())
|
||||
.append("groupName", getGroupName())
|
||||
.append("markerCount", getMarkerCount())
|
||||
.toString();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,107 @@
|
|||
package com.ruoyi.airline.service.impl;
|
||||
|
||||
import com.ruoyi.airline.domain.api.IAirlineMarkerDomain;
|
||||
import com.ruoyi.airline.domain.api.IAirlineMarkerGroupDomain;
|
||||
import com.ruoyi.airline.domain.model.AirlineMarker;
|
||||
import com.ruoyi.airline.domain.model.AirlineMarkerGroup;
|
||||
import com.ruoyi.airline.service.api.IAirlineMarkerGroupService;
|
||||
import com.ruoyi.airline.service.convert.AirlineMarkerGroupServiceConvert;
|
||||
import com.ruoyi.airline.service.convert.AirlineMarkerServiceConvert;
|
||||
import com.ruoyi.airline.service.dto.AirlineMarkerDTO;
|
||||
import com.ruoyi.airline.service.dto.AirlineMarkerGroupDTO;
|
||||
import com.ruoyi.common.security.utils.SecurityUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 标注分组服务实现类
|
||||
*
|
||||
* @author 拓恒
|
||||
*/
|
||||
@Service
|
||||
public class AirlineMarkerGroupServiceImpl implements IAirlineMarkerGroupService {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(AirlineMarkerGroupServiceImpl.class);
|
||||
|
||||
@Autowired
|
||||
private IAirlineMarkerGroupDomain iAirlineMarkerGroupDomain;
|
||||
|
||||
@Autowired
|
||||
private IAirlineMarkerDomain iAirlineMarkerDomain;
|
||||
|
||||
@Override
|
||||
public int deleteGroupById(Long groupId) {
|
||||
AirlineMarkerGroup model = new AirlineMarkerGroup();
|
||||
model.setGroupId(groupId);
|
||||
model.setDeletedBy(SecurityUtils.getUserId().toString());
|
||||
return iAirlineMarkerGroupDomain.deleteGroup(model);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkGroupNameUnique(AirlineMarkerGroupDTO group) {
|
||||
AirlineMarkerGroup model = AirlineMarkerGroupServiceConvert.to(group);
|
||||
return iAirlineMarkerGroupDomain.checkGroupNameUnique(model);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int updateGroup(AirlineMarkerGroupDTO group) {
|
||||
group.setUpdateBy(SecurityUtils.getUserId().toString());
|
||||
AirlineMarkerGroup model = AirlineMarkerGroupServiceConvert.to(group);
|
||||
return iAirlineMarkerGroupDomain.updateGroup(model);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int insertGroup(AirlineMarkerGroupDTO group) {
|
||||
group.setCreateBy(SecurityUtils.getUserId().toString());
|
||||
group.setUpdateBy(SecurityUtils.getUserId().toString());
|
||||
AirlineMarkerGroup model = AirlineMarkerGroupServiceConvert.to(group);
|
||||
return iAirlineMarkerGroupDomain.insertGroup(model);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AirlineMarkerGroupDTO> selectGroupList(AirlineMarkerGroupDTO dto) {
|
||||
AirlineMarkerGroup model = AirlineMarkerGroupServiceConvert.to(dto);
|
||||
List<AirlineMarkerGroup> groups = iAirlineMarkerGroupDomain.selectGroupList(model);
|
||||
return AirlineMarkerGroupServiceConvert.fromList(groups);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AirlineMarkerGroupDTO selectGroupById(Long groupId) {
|
||||
AirlineMarkerGroup model = iAirlineMarkerGroupDomain.selectGroupById(groupId);
|
||||
return AirlineMarkerGroupServiceConvert.from(model);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int insertMarkerWithGroup(Long groupId, AirlineMarkerDTO marker) {
|
||||
// 先插入标注
|
||||
marker.setCreateBy(SecurityUtils.getUserId().toString());
|
||||
marker.setUpdateBy(SecurityUtils.getUserId().toString());
|
||||
AirlineMarker markerModel = AirlineMarkerServiceConvert.to(marker);
|
||||
int result = iAirlineMarkerDomain.insertMarker(markerModel);
|
||||
|
||||
// TODO: 处理分组关系
|
||||
// 需要在 AirlineMarkerGroupInfoDomain 中添加方法
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int batchDeleteGroup(List<Long> groupIds) {
|
||||
if (groupIds == null || groupIds.isEmpty()) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int deletedCount = 0;
|
||||
for (Long groupId : groupIds) {
|
||||
int result = deleteGroupById(groupId);
|
||||
if (result > 0) {
|
||||
deletedCount++;
|
||||
}
|
||||
}
|
||||
return deletedCount;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
-- 创建标注分组表
|
||||
CREATE TABLE IF NOT EXISTS airline_marker_group (
|
||||
group_id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '分组ID',
|
||||
group_name VARCHAR(255) NOT NULL COMMENT '分组名称',
|
||||
del_flag BIGINT(20) DEFAULT 0 COMMENT '删除标识,0.未删除(默认);1,已删除',
|
||||
deleted_by VARCHAR(64) DEFAULT '' COMMENT '删除者',
|
||||
deleted_time DATETIME COMMENT '删除时间',
|
||||
create_by VARCHAR(64) DEFAULT '' COMMENT '创建者',
|
||||
create_time DATETIME COMMENT '创建时间',
|
||||
update_by VARCHAR(64) DEFAULT '' COMMENT '更新者',
|
||||
update_time DATETIME COMMENT '更新时间',
|
||||
remark VARCHAR(500) DEFAULT NULL COMMENT '备注',
|
||||
PRIMARY KEY (group_id)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='标注分组表';
|
||||
|
||||
-- 修改标注分组明细表,将 group_id 改为关联标注分组表(如果需要数据迁移,需要先迁移数据)
|
||||
ALTER TABLE airline_marker_group_info COMMENT = '标注分组明细表';
|
||||
|
|
@ -0,0 +1,76 @@
|
|||
<?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.ruoyi.airline.mapper.AirlineMarkerGroupMapper">
|
||||
|
||||
<!-- 结果映射 -->
|
||||
<resultMap id="AirlineMarkerGroupResult" type="com.ruoyi.airline.mapper.entity.AirlineMarkerGroupEntity">
|
||||
<id property="groupId" column="group_id" />
|
||||
<result property="groupName" column="group_name" />
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
<result property="delFlag" column="del_flag" />
|
||||
<result property="deletedBy" column="deleted_by" />
|
||||
<result property="deletedTime" column="deleted_time" />
|
||||
</resultMap>
|
||||
|
||||
<!-- 检查分组名称是否唯一 -->
|
||||
<select id="checkGroupNameUnique" parameterType="com.ruoyi.airline.mapper.entity.AirlineMarkerGroupEntity" resultType="java.lang.Integer">
|
||||
select count(1) from airline_marker_group
|
||||
where group_name = #{groupName}
|
||||
and del_flag = 0
|
||||
<if test="groupId != null">
|
||||
and group_id != #{groupId}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<!-- 删除分组(软删除) -->
|
||||
<update id="deleteGroup" parameterType="com.ruoyi.airline.mapper.entity.AirlineMarkerGroupEntity">
|
||||
update airline_marker_group
|
||||
set del_flag = 1,
|
||||
deleted_by = #{deletedBy},
|
||||
deleted_time = now()
|
||||
where group_id = #{groupId}
|
||||
and del_flag = 0
|
||||
</update>
|
||||
|
||||
<!-- 更新分组 -->
|
||||
<update id="updateGroup" parameterType="com.ruoyi.airline.mapper.entity.AirlineMarkerGroupEntity">
|
||||
update airline_marker_group
|
||||
set group_name = #{groupName},
|
||||
update_by = #{updateBy},
|
||||
update_time = now()
|
||||
where group_id = #{groupId}
|
||||
and del_flag = 0
|
||||
</update>
|
||||
|
||||
<!-- 插入分组 -->
|
||||
<insert id="insertGroup" parameterType="com.ruoyi.airline.mapper.entity.AirlineMarkerGroupEntity">
|
||||
insert into airline_marker_group (group_name, create_by, create_time, update_by, update_time, del_flag)
|
||||
values (#{groupName}, #{createBy}, now(), #{updateBy}, now(), 0)
|
||||
</insert>
|
||||
|
||||
<!-- 查询分组列表 -->
|
||||
<select id="selectGroupList" parameterType="com.ruoyi.airline.mapper.entity.AirlineMarkerGroupEntity" resultMap="AirlineMarkerGroupResult">
|
||||
select group_id, group_name, create_by, create_time, update_by, update_time, del_flag, deleted_by, deleted_time
|
||||
from airline_marker_group
|
||||
<where>
|
||||
del_flag = 0
|
||||
<if test="groupName != null and groupName != ''">
|
||||
and group_name like concat('%', #{groupName}, '%')
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<!-- 根据ID查询分组 -->
|
||||
<select id="selectGroupById" parameterType="java.lang.Long" resultMap="AirlineMarkerGroupResult">
|
||||
select group_id, group_name, create_by, create_time, update_by, update_time, del_flag, deleted_by, deleted_time
|
||||
from airline_marker_group
|
||||
where group_id = #{groupId}
|
||||
and del_flag = 0
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue