feat:增加标注分组

This commit is contained in:
gyb 2026-03-16 18:33:21 +08:00
parent c7793d7c71
commit ce41e4a490
14 changed files with 791 additions and 0 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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 = '标注分组明细表';

View File

@ -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>