init
This commit is contained in:
parent
ccea6c874c
commit
a1ee204c34
|
@ -2,13 +2,23 @@ package cn.workde.module.drone.coding.controller;
|
|||
|
||||
|
||||
import cn.workde.core.constant.GrapeConst;
|
||||
import cn.workde.core.data.dto.Result;
|
||||
import cn.workde.module.drone.coding.dto.AttributeDto;
|
||||
import cn.workde.module.drone.coding.service.AttributeService;
|
||||
import cn.workde.module.drone.coding.vo.AttributeVo;
|
||||
import cn.workde.module.upms.controller._BaseController;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Parameters;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springdoc.core.annotations.ParameterObject;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
|
@ -27,6 +37,58 @@ public class AttributeController extends _BaseController {
|
|||
@Resource
|
||||
private AttributeService attributeService;
|
||||
|
||||
@PostMapping("/add")
|
||||
@Operation(summary = "增加")
|
||||
public Result add(@RequestBody @Validated AttributeVo vo) {
|
||||
return attributeService.addAttribute(vo);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete/{attributeId}")
|
||||
@Operation(summary = "删除")
|
||||
@Parameters({
|
||||
@Parameter(name = "attributeId", description = "属性ID", required = true)
|
||||
})
|
||||
public Result delete(@PathVariable String attributeId) {
|
||||
return attributeService.deleteAttribute(attributeId);
|
||||
}
|
||||
|
||||
@PutMapping("/edit/{attributeId}")
|
||||
@Operation(summary = "编辑")
|
||||
@Parameters({
|
||||
@Parameter(name = "attributeId", description = "属性ID", required = true)
|
||||
})
|
||||
public Result edit(@RequestBody @Validated AttributeVo vo, @PathVariable String attributeId) {
|
||||
return attributeService.editAttribute(attributeId, vo);
|
||||
}
|
||||
|
||||
@GetMapping("/detail")
|
||||
@Operation(summary = "详情")
|
||||
@Parameters({
|
||||
@Parameter(name = "attributeId", description = "属性ID", required = true)
|
||||
})
|
||||
public Result<AttributeDto> detail(String attributeId) {
|
||||
return attributeService.getAttributeDetail(attributeId);
|
||||
}
|
||||
|
||||
@GetMapping("/list")
|
||||
@Operation(summary = "列表查询")
|
||||
@Parameters({
|
||||
@Parameter(name = "attributeClassificationId", description = "属性分类ID", required = false)
|
||||
})
|
||||
public Result<List<AttributeDto>> list(String attributeClassificationId) {
|
||||
return attributeService.getAttributeList(attributeClassificationId);
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "分页查询")
|
||||
@Parameters({
|
||||
@Parameter(name = "current", description = "当前页", required = true),
|
||||
@Parameter(name = "size", description = "每页数量", required = true)
|
||||
})
|
||||
public Result<Page<AttributeDto>> page(@ParameterObject AttributeVo vo) {
|
||||
return attributeService.getAttributePageList(getPage(), vo);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
package cn.workde.module.drone.coding.dto;
|
||||
|
||||
import cn.workde.module.drone.coding.entity.Attribute;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class AttributeDto extends Attribute {
|
||||
|
||||
@Schema(description = "属性分类名称")
|
||||
private String attributeClassificationName;
|
||||
|
||||
}
|
|
@ -1,10 +1,21 @@
|
|||
package cn.workde.module.drone.coding.service;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.ObjUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.workde.core.base.BaseService;
|
||||
import cn.workde.module.drone.coding.mapper.AttributeMapper;
|
||||
import cn.workde.core.data.dto.Result;
|
||||
import cn.workde.module.drone.coding.dto.AttributeDto;
|
||||
import cn.workde.module.drone.coding.entity.Attribute;
|
||||
import cn.workde.module.drone.coding.mapper.AttributeMapper;
|
||||
import cn.workde.module.drone.coding.vo.AttributeVo;
|
||||
import cn.workde.module.drone.coding.wrapper.AttributeWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 无人机属性(Attribute)表服务实现类
|
||||
*
|
||||
|
@ -14,5 +25,73 @@ import org.springframework.stereotype.Service;
|
|||
@Service("attributeService")
|
||||
public class AttributeService extends BaseService<AttributeMapper, Attribute> {
|
||||
|
||||
private String check(String id, AttributeVo vo) {
|
||||
String message = "";
|
||||
long count = this.count(new QueryWrapper<Attribute>()
|
||||
.lambda()
|
||||
.eq(Attribute::getAttributeName, vo.getAttributeName())
|
||||
.eq(Attribute::getAttributeClassificationId, vo.getAttributeClassificationId())
|
||||
.ne(StrUtil.isNotBlank(id), Attribute::getId, id)
|
||||
);
|
||||
if (count > 0) {
|
||||
message = " 该属性分类中属性名称重复 ";
|
||||
}
|
||||
return message;
|
||||
}
|
||||
|
||||
public Result addAttribute(AttributeVo vo) {
|
||||
String message = check("", vo);
|
||||
if (StrUtil.isNotBlank(message)) {
|
||||
return Result.fail(message);
|
||||
}
|
||||
Attribute obj = BeanUtil.copyProperties(vo, Attribute.class);
|
||||
return this.saveOrUpdate(obj) ? Result.success("操作成功") : Result.fail("操作失败");
|
||||
}
|
||||
|
||||
public Result editAttribute(String id, AttributeVo vo) {
|
||||
String message = check(id, vo);
|
||||
if (StrUtil.isNotBlank(message)) {
|
||||
return Result.fail(message);
|
||||
}
|
||||
Attribute obj = getById(id);
|
||||
if (ObjUtil.isNull(obj)) {
|
||||
return Result.fail("数据不存在");
|
||||
}
|
||||
BeanUtil.copyProperties(vo, obj);
|
||||
return this.saveOrUpdate(obj) ? Result.success("操作成功") : Result.fail("操作失败");
|
||||
}
|
||||
|
||||
public Result deleteAttribute(String id) {
|
||||
if (ObjUtil.isNull(this.getById(id))) {
|
||||
return Result.fail("数据不存在");
|
||||
}
|
||||
return this.removeById(id) ? Result.success("操作成功") : Result.fail("操作失败");
|
||||
}
|
||||
|
||||
public Result<AttributeDto> getAttributeDetail(String id) {
|
||||
Attribute obj = this.getById(id);
|
||||
if (ObjUtil.isNull(obj)) {
|
||||
return Result.fail("数据不存在");
|
||||
}
|
||||
return Result.data(AttributeWrapper.INSTANCE.toDto(obj));
|
||||
}
|
||||
|
||||
public Result<Page<AttributeDto>> getAttributePageList(Page page, AttributeVo vo) {
|
||||
return Result.data(AttributeWrapper.INSTANCE.toDto(this.page(page, new QueryWrapper<Attribute>()
|
||||
.lambda()
|
||||
.eq(StrUtil.isNotBlank(vo.getAttributeClassificationId()), Attribute::getAttributeClassificationId, vo.getAttributeClassificationId())
|
||||
.like(StrUtil.isNotBlank(vo.getAttributeDescription()), Attribute::getAttributeDescription, vo.getAttributeDescription())
|
||||
.like(StrUtil.isNotBlank(vo.getAttributeRemarks()), Attribute::getAttributeRemarks, vo.getAttributeRemarks())
|
||||
.like(StrUtil.isNotBlank(vo.getAttributeName()), Attribute::getAttributeName, vo.getAttributeName())
|
||||
)));
|
||||
}
|
||||
|
||||
public Result<List<AttributeDto>> getAttributeList(String attributeClassificationId) {
|
||||
return Result.data(AttributeWrapper.INSTANCE.toDto(this.list(new QueryWrapper<Attribute>()
|
||||
.lambda()
|
||||
.eq(StrUtil.isNotBlank(attributeClassificationId), Attribute::getAttributeClassificationId, attributeClassificationId)
|
||||
)));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
package cn.workde.module.drone.coding.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class AttributeVo {
|
||||
@Schema(description = "属性分类id")
|
||||
@NotBlank(message = "请选择属性分类")
|
||||
private String attributeClassificationId;
|
||||
|
||||
@Schema(description = "属性名称")
|
||||
@NotBlank(message = "属性名称不能为空")
|
||||
private String attributeName;
|
||||
|
||||
@Schema(description = "属性描述")
|
||||
@NotBlank(message = "属性描述不能为空")
|
||||
private String attributeDescription;
|
||||
|
||||
@Schema(description = "属性备注")
|
||||
@NotBlank(message = "属性备注不能为空")
|
||||
private String attributeRemarks;
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
package cn.workde.module.drone.coding.wrapper;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.ObjUtil;
|
||||
import cn.hutool.extra.spring.SpringUtil;
|
||||
import cn.workde.core.base.BaseWrapper;
|
||||
import cn.workde.module.drone.coding.dto.AttributeDto;
|
||||
import cn.workde.module.drone.coding.entity.Attribute;
|
||||
import cn.workde.module.drone.coding.entity.AttributeClassification;
|
||||
import cn.workde.module.drone.coding.service.AttributeClassificationService;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.mapstruct.AfterMapping;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
@Mapper
|
||||
public interface AttributeWrapper extends BaseWrapper<Attribute, AttributeDto> {
|
||||
|
||||
AttributeWrapper INSTANCE = Mappers.getMapper(AttributeWrapper.class);
|
||||
|
||||
@AfterMapping
|
||||
default void setOtherField(@Param("obj") Attribute obj, @Param("dto") AttributeDto dto) {
|
||||
BeanUtil.copyProperties(obj, dto);
|
||||
AttributeClassificationService attributeClassificationService = SpringUtil.getBean(AttributeClassificationService.class);
|
||||
AttributeClassification attributeClassification = attributeClassificationService.getById(obj.getAttributeClassificationId());
|
||||
if (ObjUtil.isNotNull(attributeClassification)) {
|
||||
dto.setAttributeClassificationName(attributeClassification.getAttributeClassificationName());
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue