feat(car): 实现车辆管理硬删除功能

- 在控制器中将删除方法改为硬删除(物理删除),绕过逻辑删除注解
- 在数据访问层添加硬删除SQL映射方法,支持单条和批量删除
- 在服务层定义硬删除接口方法并实现具体逻辑
- 添加空值校验确保删除操作的安全性
- 注释说明硬删除与逻辑删除的区别和用途
This commit is contained in:
2026-02-02 18:33:54 +08:00
parent fc00728729
commit 35c155a1da
4 changed files with 51 additions and 2 deletions

View File

@@ -144,7 +144,8 @@ public class HjmCarController extends BaseController {
@Operation(summary = "删除黄家明_车辆管理")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (hjmCarService.removeById(id)) {
// 硬删除(物理删除),不走 @TableLogic 逻辑删除
if (hjmCarService.hardRemoveById(id)) {
return success("删除成功");
}
return fail("删除失败");
@@ -177,7 +178,8 @@ public class HjmCarController extends BaseController {
@Operation(summary = "批量删除黄家明_车辆管理")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (hjmCarService.removeByIds(ids)) {
// 硬删除(物理删除),不走 @TableLogic 逻辑删除
if (hjmCarService.hardRemoveByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");

View File

@@ -5,8 +5,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.hjm.entity.HjmCar;
import com.gxwebsoft.hjm.param.HjmCarParam;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Param;
import java.util.Collection;
import java.util.List;
/**
@@ -44,4 +46,23 @@ public interface HjmCarMapper extends BaseMapper<HjmCar> {
@InterceptorIgnore(tenantLine = "true")
HjmCar getByCode(String code);
/**
* 硬删除:绕过 MyBatis-Plus 逻辑删除(@TableLogic
*/
@Delete("DELETE FROM hjm_car WHERE id = #{id}")
int hardDeleteById(@Param("id") Integer id);
/**
* 硬删除:批量删除,绕过 MyBatis-Plus 逻辑删除(@TableLogic
*/
@Delete({
"<script>",
"DELETE FROM hjm_car WHERE id IN",
"<foreach collection='ids' item='id' open='(' separator=',' close=')'>",
"#{id}",
"</foreach>",
"</script>"
})
int hardDeleteBatchIds(@Param("ids") Collection<Integer> ids);
}

View File

@@ -44,4 +44,14 @@ public interface HjmCarService extends IService<HjmCar> {
boolean updateByGpsNo(HjmCar byGpsNo);
HjmCar getByCode(String code);
/**
* 硬删除(物理删除),绕过 @TableLogic 逻辑删除。
*/
boolean hardRemoveById(Integer id);
/**
* 硬删除(物理删除),绕过 @TableLogic 逻辑删除。
*/
boolean hardRemoveByIds(List<Integer> ids);
}

View File

@@ -127,6 +127,22 @@ public class HjmCarServiceImpl extends ServiceImpl<HjmCarMapper, HjmCar> impleme
}
}
@Override
public boolean hardRemoveById(Integer id) {
if (id == null) {
return false;
}
return baseMapper.hardDeleteById(id) > 0;
}
@Override
public boolean hardRemoveByIds(List<Integer> ids) {
if (ids == null || ids.isEmpty()) {
return false;
}
return baseMapper.hardDeleteBatchIds(ids) > 0;
}
/**