19 changed files with 1362 additions and 1 deletions
@ -0,0 +1,113 @@ |
|||||
|
package org.dromara.system.controller; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
import lombok.RequiredArgsConstructor; |
||||
|
import jakarta.servlet.http.HttpServletResponse; |
||||
|
import jakarta.validation.constraints.*; |
||||
|
import cn.dev33.satoken.annotation.SaCheckPermission; |
||||
|
import org.springframework.web.bind.annotation.*; |
||||
|
import org.springframework.validation.annotation.Validated; |
||||
|
import org.dromara.common.idempotent.annotation.RepeatSubmit; |
||||
|
import org.dromara.common.log.annotation.Log; |
||||
|
import org.dromara.common.web.core.BaseController; |
||||
|
import org.dromara.common.mybatis.core.page.PageQuery; |
||||
|
import org.dromara.common.core.domain.R; |
||||
|
import org.dromara.common.core.validate.AddGroup; |
||||
|
import org.dromara.common.core.validate.EditGroup; |
||||
|
import org.dromara.common.log.enums.BusinessType; |
||||
|
import org.dromara.common.excel.utils.ExcelUtil; |
||||
|
import org.dromara.system.domain.vo.DjiApiVo; |
||||
|
import org.dromara.system.domain.bo.DjiApiBo; |
||||
|
import org.dromara.system.service.IDjiApiService; |
||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo; |
||||
|
|
||||
|
/** |
||||
|
* 大疆开发 |
||||
|
* 前端访问路由地址为:/djidev/djiApi |
||||
|
* |
||||
|
* @author szs |
||||
|
* @date 2025-05-14 |
||||
|
*/ |
||||
|
@Validated |
||||
|
@RequiredArgsConstructor |
||||
|
@RestController |
||||
|
@RequestMapping("/djiApi") |
||||
|
public class DjiApiController extends BaseController { |
||||
|
|
||||
|
private final IDjiApiService djiApiService; |
||||
|
|
||||
|
/** |
||||
|
* 查询大疆开发列表 |
||||
|
*/ |
||||
|
@SaCheckPermission("djidev:djiApi:list") |
||||
|
@GetMapping("/list") |
||||
|
public TableDataInfo<DjiApiVo> list(DjiApiBo bo, PageQuery pageQuery) { |
||||
|
return djiApiService.queryPageList(bo, pageQuery); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 导出大疆开发列表 |
||||
|
*/ |
||||
|
@SaCheckPermission("djidev:djiApi:export") |
||||
|
@Log(title = "大疆开发", businessType = BusinessType.EXPORT) |
||||
|
@PostMapping("/export") |
||||
|
public void export(DjiApiBo bo, HttpServletResponse response) { |
||||
|
List<DjiApiVo> list = djiApiService.queryList(bo); |
||||
|
ExcelUtil.exportExcel(list, "大疆开发", DjiApiVo.class, response); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 获取大疆开发详细信息 |
||||
|
* |
||||
|
* @param id 主键 |
||||
|
*/ |
||||
|
@SaCheckPermission("djidev:djiApi:query") |
||||
|
@GetMapping("/{id}") |
||||
|
public R<DjiApiVo> getInfo(@NotNull(message = "主键不能为空") |
||||
|
@PathVariable Long id) { |
||||
|
return R.ok(djiApiService.queryById(id)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 新增大疆开发 |
||||
|
*/ |
||||
|
@SaCheckPermission("djidev:djiApi:add") |
||||
|
@Log(title = "大疆开发", businessType = BusinessType.INSERT) |
||||
|
@RepeatSubmit() |
||||
|
@PostMapping() |
||||
|
public R<Void> add(@Validated(AddGroup.class) @RequestBody DjiApiBo bo) { |
||||
|
//跟新版本次数
|
||||
|
if(null == bo.getVersionCount()){ |
||||
|
DjiApiBo bo1 = new DjiApiBo(); |
||||
|
bo1.setDjiApiType(bo.getDjiApiType()); |
||||
|
List<DjiApiVo> djiApiVos = djiApiService.queryList(bo1); |
||||
|
bo.setVersionCount(djiApiVos.size() +1); |
||||
|
} |
||||
|
return toAjax(djiApiService.insertByBo(bo)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 修改大疆开发 |
||||
|
*/ |
||||
|
@SaCheckPermission("djidev:djiApi:edit") |
||||
|
@Log(title = "大疆开发", businessType = BusinessType.UPDATE) |
||||
|
@RepeatSubmit() |
||||
|
@PutMapping() |
||||
|
public R<Void> edit(@Validated(EditGroup.class) @RequestBody DjiApiBo bo) { |
||||
|
return toAjax(djiApiService.updateByBo(bo)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 删除大疆开发 |
||||
|
* |
||||
|
* @param ids 主键串 |
||||
|
*/ |
||||
|
@SaCheckPermission("djidev:djiApi:remove") |
||||
|
@Log(title = "大疆开发", businessType = BusinessType.DELETE) |
||||
|
@DeleteMapping("/{ids}") |
||||
|
public R<Void> remove(@NotEmpty(message = "主键不能为空") |
||||
|
@PathVariable Long[] ids) { |
||||
|
return toAjax(djiApiService.deleteWithValidByIds(List.of(ids), true)); |
||||
|
} |
||||
|
} |
@ -0,0 +1,131 @@ |
|||||
|
package org.dromara.system.controller; |
||||
|
|
||||
|
import java.util.ArrayList; |
||||
|
import java.util.List; |
||||
|
|
||||
|
import lombok.RequiredArgsConstructor; |
||||
|
import jakarta.servlet.http.HttpServletResponse; |
||||
|
import jakarta.validation.constraints.*; |
||||
|
import cn.dev33.satoken.annotation.SaCheckPermission; |
||||
|
import org.dromara.common.excel.core.ExcelResult; |
||||
|
import org.dromara.system.domain.vo.SysUserImportVo; |
||||
|
import org.dromara.system.listener.DjiApiErrorImportListener; |
||||
|
import org.dromara.system.listener.SysUserImportListener; |
||||
|
import org.springframework.http.MediaType; |
||||
|
import org.springframework.web.bind.annotation.*; |
||||
|
import org.springframework.validation.annotation.Validated; |
||||
|
import org.dromara.common.idempotent.annotation.RepeatSubmit; |
||||
|
import org.dromara.common.log.annotation.Log; |
||||
|
import org.dromara.common.web.core.BaseController; |
||||
|
import org.dromara.common.mybatis.core.page.PageQuery; |
||||
|
import org.dromara.common.core.domain.R; |
||||
|
import org.dromara.common.core.validate.AddGroup; |
||||
|
import org.dromara.common.core.validate.EditGroup; |
||||
|
import org.dromara.common.log.enums.BusinessType; |
||||
|
import org.dromara.common.excel.utils.ExcelUtil; |
||||
|
import org.dromara.system.domain.vo.DjiApiErrorVo; |
||||
|
import org.dromara.system.domain.bo.DjiApiErrorBo; |
||||
|
import org.dromara.system.service.IDjiApiErrorService; |
||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo; |
||||
|
import org.springframework.web.multipart.MultipartFile; |
||||
|
|
||||
|
/** |
||||
|
* 大疆开发-错误码 |
||||
|
* 前端访问路由地址为:/djidev/djiApiError |
||||
|
* |
||||
|
* @author szs |
||||
|
* @date 2025-05-14 |
||||
|
*/ |
||||
|
@Validated |
||||
|
@RequiredArgsConstructor |
||||
|
@RestController |
||||
|
@RequestMapping("/djiApiError") |
||||
|
public class DjiApiErrorController extends BaseController { |
||||
|
|
||||
|
private final IDjiApiErrorService djiApiErrorService; |
||||
|
|
||||
|
/** |
||||
|
* 查询大疆开发-错误码列表 |
||||
|
*/ |
||||
|
@SaCheckPermission("djidev:djiApiError:list") |
||||
|
@GetMapping("/list") |
||||
|
public TableDataInfo<DjiApiErrorVo> list(DjiApiErrorBo bo, PageQuery pageQuery) { |
||||
|
return djiApiErrorService.queryPageList(bo, pageQuery); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 导出大疆开发-错误码列表 |
||||
|
*/ |
||||
|
@SaCheckPermission("djidev:djiApiError:export") |
||||
|
@Log(title = "大疆开发-错误码", businessType = BusinessType.EXPORT) |
||||
|
@PostMapping("/export") |
||||
|
public void export(DjiApiErrorBo bo, HttpServletResponse response) { |
||||
|
List<DjiApiErrorVo> list = djiApiErrorService.queryList(bo); |
||||
|
ExcelUtil.exportExcel(list, "大疆开发-错误码", DjiApiErrorVo.class, response); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
@Log(title = "大疆开发-错误码管理", businessType = BusinessType.IMPORT) |
||||
|
@SaCheckPermission("djidev:djiApiError:import") |
||||
|
@PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) |
||||
|
public R<Void> importData(@RequestPart("file") MultipartFile file, boolean updateSupport) throws Exception { |
||||
|
ExcelResult<DjiApiErrorVo> result = ExcelUtil.importExcel(file.getInputStream(), DjiApiErrorVo.class, new DjiApiErrorImportListener(updateSupport)); |
||||
|
return R.ok(result.getAnalysis()); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 获取导入模板 |
||||
|
*/ |
||||
|
@PostMapping("/importTemplate") |
||||
|
public void importTemplate(HttpServletResponse response) { |
||||
|
ExcelUtil.exportExcel(new ArrayList<>(), "大疆开发-错误码数据", DjiApiErrorVo.class, response); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 获取大疆开发-错误码详细信息 |
||||
|
* |
||||
|
* @param id 主键 |
||||
|
*/ |
||||
|
@SaCheckPermission("djidev:djiApiError:query") |
||||
|
@GetMapping("/{id}") |
||||
|
public R<DjiApiErrorVo> getInfo(@NotNull(message = "主键不能为空") |
||||
|
@PathVariable Long id) { |
||||
|
return R.ok(djiApiErrorService.queryById(id)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 新增大疆开发-错误码 |
||||
|
*/ |
||||
|
@SaCheckPermission("djidev:djiApiError:add") |
||||
|
@Log(title = "大疆开发-错误码", businessType = BusinessType.INSERT) |
||||
|
@RepeatSubmit() |
||||
|
@PostMapping() |
||||
|
public R<Void> add(@Validated(AddGroup.class) @RequestBody DjiApiErrorBo bo) { |
||||
|
return toAjax(djiApiErrorService.insertByBo(bo)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 修改大疆开发-错误码 |
||||
|
*/ |
||||
|
@SaCheckPermission("djidev:djiApiError:edit") |
||||
|
@Log(title = "大疆开发-错误码", businessType = BusinessType.UPDATE) |
||||
|
@RepeatSubmit() |
||||
|
@PutMapping() |
||||
|
public R<Void> edit(@Validated(EditGroup.class) @RequestBody DjiApiErrorBo bo) { |
||||
|
return toAjax(djiApiErrorService.updateByBo(bo)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 删除大疆开发-错误码 |
||||
|
* |
||||
|
* @param ids 主键串 |
||||
|
*/ |
||||
|
@SaCheckPermission("djidev:djiApiError:remove") |
||||
|
@Log(title = "大疆开发-错误码", businessType = BusinessType.DELETE) |
||||
|
@DeleteMapping("/{ids}") |
||||
|
public R<Void> remove(@NotEmpty(message = "主键不能为空") |
||||
|
@PathVariable Long[] ids) { |
||||
|
return toAjax(djiApiErrorService.deleteWithValidByIds(List.of(ids), true)); |
||||
|
} |
||||
|
} |
@ -0,0 +1,63 @@ |
|||||
|
package org.dromara.system.domain; |
||||
|
|
||||
|
import org.dromara.common.tenant.core.TenantEntity; |
||||
|
import com.baomidou.mybatisplus.annotation.*; |
||||
|
import lombok.Data; |
||||
|
import lombok.EqualsAndHashCode; |
||||
|
import java.util.Date; |
||||
|
import com.fasterxml.jackson.annotation.JsonFormat; |
||||
|
|
||||
|
import java.io.Serial; |
||||
|
|
||||
|
/** |
||||
|
* 大疆开发对象 dji_api |
||||
|
* |
||||
|
* @author szs |
||||
|
* @date 2025-05-14 |
||||
|
*/ |
||||
|
@Data |
||||
|
@EqualsAndHashCode(callSuper = true) |
||||
|
@TableName("dji_api") |
||||
|
public class DjiApi extends TenantEntity { |
||||
|
|
||||
|
@Serial |
||||
|
private static final long serialVersionUID = 1L; |
||||
|
|
||||
|
/** |
||||
|
* ID |
||||
|
*/ |
||||
|
@TableId(value = "id") |
||||
|
private Long id; |
||||
|
|
||||
|
/** |
||||
|
* 大疆api类型 |
||||
|
*/ |
||||
|
private String djiApiType; |
||||
|
|
||||
|
/** |
||||
|
* 版本名称 |
||||
|
*/ |
||||
|
private String name; |
||||
|
|
||||
|
/** |
||||
|
* 版本号 |
||||
|
*/ |
||||
|
private String nameVersionNo; |
||||
|
|
||||
|
/** |
||||
|
* 版本次数 |
||||
|
*/ |
||||
|
private Integer versionCount; |
||||
|
|
||||
|
/** |
||||
|
* 发步日期 |
||||
|
*/ |
||||
|
private Date timeRelease; |
||||
|
|
||||
|
/** |
||||
|
* 备注 |
||||
|
*/ |
||||
|
private String remark; |
||||
|
|
||||
|
|
||||
|
} |
@ -0,0 +1,76 @@ |
|||||
|
package org.dromara.system.domain; |
||||
|
|
||||
|
import org.dromara.common.tenant.core.TenantEntity; |
||||
|
import com.baomidou.mybatisplus.annotation.*; |
||||
|
import lombok.Data; |
||||
|
import lombok.EqualsAndHashCode; |
||||
|
|
||||
|
import java.io.Serial; |
||||
|
|
||||
|
/** |
||||
|
* 大疆开发-错误码对象 dji_api_error |
||||
|
* |
||||
|
* @author szs |
||||
|
* @date 2025-05-14 |
||||
|
*/ |
||||
|
@Data |
||||
|
@EqualsAndHashCode(callSuper = true) |
||||
|
@TableName("dji_api_error") |
||||
|
public class DjiApiError extends TenantEntity { |
||||
|
|
||||
|
@Serial |
||||
|
private static final long serialVersionUID = 1L; |
||||
|
|
||||
|
/** |
||||
|
* ID |
||||
|
*/ |
||||
|
@TableId(value = "id") |
||||
|
private Long id; |
||||
|
|
||||
|
/** |
||||
|
* 大疆APIId |
||||
|
*/ |
||||
|
private Long djiApiId; |
||||
|
|
||||
|
/** |
||||
|
* 大疆API版本 |
||||
|
*/ |
||||
|
private String djiApiName; |
||||
|
|
||||
|
/** |
||||
|
* 错误码 |
||||
|
*/ |
||||
|
private String name; |
||||
|
|
||||
|
/** |
||||
|
* 中文描述 |
||||
|
*/ |
||||
|
private String nameCn; |
||||
|
|
||||
|
/** |
||||
|
* 英文描述 |
||||
|
*/ |
||||
|
private String nameEn; |
||||
|
|
||||
|
/** |
||||
|
* 是否变更 |
||||
|
*/ |
||||
|
private String isChangeFlag; |
||||
|
|
||||
|
/** |
||||
|
* 历史变更次数 |
||||
|
*/ |
||||
|
private Integer changeHistroyCount; |
||||
|
|
||||
|
/** |
||||
|
* 历史变更Ids(,分隔) |
||||
|
*/ |
||||
|
private String changeHistoryIds; |
||||
|
|
||||
|
/** |
||||
|
* 大疆开发-错误码 |
||||
|
*/ |
||||
|
private String remark; |
||||
|
|
||||
|
|
||||
|
} |
@ -0,0 +1,68 @@ |
|||||
|
package org.dromara.system.domain.bo; |
||||
|
|
||||
|
import org.dromara.system.domain.DjiApi; |
||||
|
import org.dromara.common.mybatis.core.domain.BaseEntity; |
||||
|
import org.dromara.common.core.validate.AddGroup; |
||||
|
import org.dromara.common.core.validate.EditGroup; |
||||
|
import io.github.linpeilie.annotations.AutoMapper; |
||||
|
import lombok.Data; |
||||
|
import lombok.EqualsAndHashCode; |
||||
|
import jakarta.validation.constraints.*; |
||||
|
import java.util.Date; |
||||
|
import com.fasterxml.jackson.annotation.JsonFormat; |
||||
|
|
||||
|
/** |
||||
|
* 大疆开发业务对象 dji_api |
||||
|
* |
||||
|
* @author szs |
||||
|
* @date 2025-05-14 |
||||
|
*/ |
||||
|
@Data |
||||
|
@EqualsAndHashCode(callSuper = true) |
||||
|
@AutoMapper(target = DjiApi.class, reverseConvertGenerate = false) |
||||
|
public class DjiApiBo extends BaseEntity { |
||||
|
|
||||
|
/** |
||||
|
* ID |
||||
|
*/ |
||||
|
@NotNull(message = "ID不能为空", groups = { EditGroup.class }) |
||||
|
private Long id; |
||||
|
|
||||
|
/** |
||||
|
* 大疆api类型 |
||||
|
*/ |
||||
|
@NotBlank(message = "大疆api类型不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private String djiApiType; |
||||
|
|
||||
|
/** |
||||
|
* 版本名称 |
||||
|
*/ |
||||
|
@NotBlank(message = "版本名称不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private String name; |
||||
|
|
||||
|
/** |
||||
|
* 版本号 |
||||
|
*/ |
||||
|
@NotBlank(message = "版本号不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private String nameVersionNo; |
||||
|
|
||||
|
/** |
||||
|
* 版本次数 |
||||
|
*/ |
||||
|
// @NotNull(message = "版本次数不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
|
private Integer versionCount; |
||||
|
|
||||
|
/** |
||||
|
* 发步日期 |
||||
|
*/ |
||||
|
@NotNull(message = "发步日期不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private Date timeRelease; |
||||
|
|
||||
|
/** |
||||
|
* 备注 |
||||
|
*/ |
||||
|
// @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
|
private String remark; |
||||
|
|
||||
|
|
||||
|
} |
@ -0,0 +1,84 @@ |
|||||
|
package org.dromara.system.domain.bo; |
||||
|
|
||||
|
import org.dromara.system.domain.DjiApiError; |
||||
|
import org.dromara.common.mybatis.core.domain.BaseEntity; |
||||
|
import org.dromara.common.core.validate.AddGroup; |
||||
|
import org.dromara.common.core.validate.EditGroup; |
||||
|
import io.github.linpeilie.annotations.AutoMapper; |
||||
|
import lombok.Data; |
||||
|
import lombok.EqualsAndHashCode; |
||||
|
import jakarta.validation.constraints.*; |
||||
|
|
||||
|
/** |
||||
|
* 大疆开发-错误码业务对象 dji_api_error |
||||
|
* |
||||
|
* @author szs |
||||
|
* @date 2025-05-14 |
||||
|
*/ |
||||
|
@Data |
||||
|
@EqualsAndHashCode(callSuper = true) |
||||
|
@AutoMapper(target = DjiApiError.class, reverseConvertGenerate = false) |
||||
|
public class DjiApiErrorBo extends BaseEntity { |
||||
|
|
||||
|
/** |
||||
|
* ID |
||||
|
*/ |
||||
|
@NotNull(message = "ID不能为空", groups = { EditGroup.class }) |
||||
|
private Long id; |
||||
|
|
||||
|
/** |
||||
|
* 大疆APIId |
||||
|
*/ |
||||
|
@NotNull(message = "大疆APIId不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private Long djiApiId; |
||||
|
|
||||
|
/** |
||||
|
* 大疆API版本 |
||||
|
*/ |
||||
|
// @NotBlank(message = "大疆API版本不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
|
private String djiApiName; |
||||
|
|
||||
|
/** |
||||
|
* 错误码 |
||||
|
*/ |
||||
|
@NotBlank(message = "错误码不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private String name; |
||||
|
|
||||
|
/** |
||||
|
* 中文描述 |
||||
|
*/ |
||||
|
@NotBlank(message = "中文描述不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private String nameCn; |
||||
|
|
||||
|
/** |
||||
|
* 英文描述 |
||||
|
*/ |
||||
|
// @NotBlank(message = "英文描述不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
|
private String nameEn; |
||||
|
|
||||
|
/** |
||||
|
* 是否变更 |
||||
|
*/ |
||||
|
// @NotBlank(message = "是否变更不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
|
private String isChangeFlag; |
||||
|
|
||||
|
/** |
||||
|
* 历史变更次数 |
||||
|
*/ |
||||
|
// @NotNull(message = "历史变更次数不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
|
private Integer changeHistroyCount; |
||||
|
|
||||
|
/** |
||||
|
* 历史变更Ids(,分隔) |
||||
|
*/ |
||||
|
// @NotBlank(message = "历史变更Ids(,分隔)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
|
private String changeHistoryIds; |
||||
|
|
||||
|
/** |
||||
|
* 大疆开发-错误码 |
||||
|
*/ |
||||
|
// @NotBlank(message = "大疆开发-错误码不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
|
private String remark; |
||||
|
|
||||
|
|
||||
|
} |
@ -0,0 +1,93 @@ |
|||||
|
package org.dromara.system.domain.vo; |
||||
|
|
||||
|
import org.dromara.system.domain.DjiApiError; |
||||
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; |
||||
|
import com.alibaba.excel.annotation.ExcelProperty; |
||||
|
import org.dromara.common.excel.annotation.ExcelDictFormat; |
||||
|
import org.dromara.common.excel.convert.ExcelDictConvert; |
||||
|
import io.github.linpeilie.annotations.AutoMapper; |
||||
|
import lombok.Data; |
||||
|
|
||||
|
import java.io.Serial; |
||||
|
import java.io.Serializable; |
||||
|
import java.util.Date; |
||||
|
|
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 大疆开发-错误码视图对象 dji_api_error |
||||
|
* |
||||
|
* @author szs |
||||
|
* @date 2025-05-14 |
||||
|
*/ |
||||
|
@Data |
||||
|
@ExcelIgnoreUnannotated |
||||
|
@AutoMapper(target = DjiApiError.class) |
||||
|
public class DjiApiErrorVo implements Serializable { |
||||
|
|
||||
|
@Serial |
||||
|
private static final long serialVersionUID = 1L; |
||||
|
|
||||
|
/** |
||||
|
* ID |
||||
|
*/ |
||||
|
@ExcelProperty(value = "ID") |
||||
|
private Long id; |
||||
|
|
||||
|
/** |
||||
|
* 大疆APIId |
||||
|
*/ |
||||
|
@ExcelProperty(value = "大疆APIId") |
||||
|
private Long djiApiId; |
||||
|
|
||||
|
/** |
||||
|
* 大疆API版本 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "大疆API版本") |
||||
|
private String djiApiName; |
||||
|
|
||||
|
/** |
||||
|
* 错误码 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "错误码") |
||||
|
private String name; |
||||
|
|
||||
|
/** |
||||
|
* 中文描述 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "中文描述") |
||||
|
private String nameCn; |
||||
|
|
||||
|
/** |
||||
|
* 英文描述 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "英文描述") |
||||
|
private String nameEn; |
||||
|
|
||||
|
/** |
||||
|
* 是否变更 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "是否变更", converter = ExcelDictConvert.class) |
||||
|
@ExcelDictFormat(dictType = "sys_yes_no") |
||||
|
private String isChangeFlag; |
||||
|
|
||||
|
/** |
||||
|
* 历史变更次数 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "历史变更次数") |
||||
|
private Integer changeHistroyCount; |
||||
|
|
||||
|
/** |
||||
|
* 历史变更Ids(,分隔) |
||||
|
*/ |
||||
|
@ExcelProperty(value = "历史变更Ids(,分隔)") |
||||
|
private String changeHistoryIds; |
||||
|
|
||||
|
/** |
||||
|
* 备注 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "备注") |
||||
|
private String remark; |
||||
|
|
||||
|
|
||||
|
} |
@ -0,0 +1,77 @@ |
|||||
|
package org.dromara.system.domain.vo; |
||||
|
|
||||
|
import java.util.Date; |
||||
|
import com.fasterxml.jackson.annotation.JsonFormat; |
||||
|
import org.dromara.system.domain.DjiApi; |
||||
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; |
||||
|
import com.alibaba.excel.annotation.ExcelProperty; |
||||
|
import org.dromara.common.excel.annotation.ExcelDictFormat; |
||||
|
import org.dromara.common.excel.convert.ExcelDictConvert; |
||||
|
import io.github.linpeilie.annotations.AutoMapper; |
||||
|
import lombok.Data; |
||||
|
|
||||
|
import java.io.Serial; |
||||
|
import java.io.Serializable; |
||||
|
import java.util.Date; |
||||
|
|
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 大疆开发视图对象 dji_api |
||||
|
* |
||||
|
* @author szs |
||||
|
* @date 2025-05-14 |
||||
|
*/ |
||||
|
@Data |
||||
|
@ExcelIgnoreUnannotated |
||||
|
@AutoMapper(target = DjiApi.class) |
||||
|
public class DjiApiVo implements Serializable { |
||||
|
|
||||
|
@Serial |
||||
|
private static final long serialVersionUID = 1L; |
||||
|
|
||||
|
/** |
||||
|
* ID |
||||
|
*/ |
||||
|
@ExcelProperty(value = "ID") |
||||
|
private Long id; |
||||
|
|
||||
|
/** |
||||
|
* 大疆api类型 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "大疆api类型", converter = ExcelDictConvert.class) |
||||
|
@ExcelDictFormat(dictType = "dji_api_type") |
||||
|
private String djiApiType; |
||||
|
|
||||
|
/** |
||||
|
* 版本名称 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "版本名称") |
||||
|
private String name; |
||||
|
|
||||
|
/** |
||||
|
* 版本号 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "版本号") |
||||
|
private String nameVersionNo; |
||||
|
|
||||
|
/** |
||||
|
* 版本次数 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "版本次数") |
||||
|
private Integer versionCount; |
||||
|
|
||||
|
/** |
||||
|
* 发步日期 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "发步日期") |
||||
|
private Date timeRelease; |
||||
|
|
||||
|
/** |
||||
|
* 备注 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "备注") |
||||
|
private String remark; |
||||
|
|
||||
|
|
||||
|
} |
@ -0,0 +1,177 @@ |
|||||
|
package org.dromara.system.listener; |
||||
|
|
||||
|
import cn.hutool.core.bean.BeanUtil; |
||||
|
import cn.hutool.core.util.ObjectUtil; |
||||
|
import cn.hutool.core.util.StrUtil; |
||||
|
import cn.hutool.http.HtmlUtil; |
||||
|
import com.alibaba.excel.context.AnalysisContext; |
||||
|
import com.alibaba.excel.event.AnalysisEventListener; |
||||
|
import jakarta.validation.ConstraintViolation; |
||||
|
import jakarta.validation.ConstraintViolationException; |
||||
|
import lombok.extern.slf4j.Slf4j; |
||||
|
import org.dromara.common.core.exception.ServiceException; |
||||
|
import org.dromara.common.core.utils.SpringUtils; |
||||
|
import org.dromara.common.core.utils.StreamUtils; |
||||
|
import org.dromara.common.core.utils.ValidatorUtils; |
||||
|
import org.dromara.common.excel.core.ExcelListener; |
||||
|
import org.dromara.common.excel.core.ExcelResult; |
||||
|
import org.dromara.common.satoken.utils.LoginHelper; |
||||
|
import org.dromara.system.domain.bo.DjiApiBo; |
||||
|
import org.dromara.system.domain.bo.DjiApiErrorBo; |
||||
|
import org.dromara.system.domain.vo.DjiApiErrorVo; |
||||
|
import org.dromara.system.domain.vo.DjiApiVo; |
||||
|
import org.dromara.system.service.IDjiApiErrorService; |
||||
|
import org.dromara.system.service.IDjiApiService; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* 系统用户自定义导入 |
||||
|
* |
||||
|
* @author Lion Li |
||||
|
*/ |
||||
|
@Slf4j |
||||
|
public class DjiApiErrorImportListener extends AnalysisEventListener<DjiApiErrorVo> implements ExcelListener<DjiApiErrorVo> { |
||||
|
|
||||
|
|
||||
|
private final IDjiApiErrorService djiApiErrorService; |
||||
|
private final IDjiApiService djiApiService; |
||||
|
|
||||
|
|
||||
|
private final Boolean isUpdateSupport; |
||||
|
|
||||
|
private final Long operUserId; |
||||
|
|
||||
|
private int successNum = 0; |
||||
|
private int failureNum = 0; |
||||
|
private final StringBuilder successMsg = new StringBuilder(); |
||||
|
private final StringBuilder failureMsg = new StringBuilder(); |
||||
|
|
||||
|
public DjiApiErrorImportListener(Boolean isUpdateSupport) { |
||||
|
this.djiApiErrorService = SpringUtils.getBean(IDjiApiErrorService.class); |
||||
|
this.djiApiService = SpringUtils.getBean(IDjiApiService.class); |
||||
|
this.isUpdateSupport = isUpdateSupport; |
||||
|
this.operUserId = LoginHelper.getUserId(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void invoke(DjiApiErrorVo apiErrVo, AnalysisContext context) { |
||||
|
if(StrUtil.isEmpty(apiErrVo.getDjiApiName())){ |
||||
|
failureNum++; |
||||
|
failureMsg.append("<br/>").append(failureNum).append("大疆开发API 不存在,请检查大疆API"); |
||||
|
return; |
||||
|
} |
||||
|
//检查大疆API编号是否存在
|
||||
|
DjiApiBo djiApiBo = new DjiApiBo(); |
||||
|
djiApiBo.setName(apiErrVo.getDjiApiName()); |
||||
|
List<DjiApiVo> djiApiVoList = djiApiService.queryList(djiApiBo); |
||||
|
if(djiApiVoList.size()<=0){ |
||||
|
failureNum++; |
||||
|
failureMsg.append("<br/>").append(failureNum).append("大疆开发API ").append(apiErrVo.getDjiApiName()).append(" 不存在,请检查大疆API"); |
||||
|
}else{ |
||||
|
DjiApiVo djiApiVo = djiApiVoList.get(0); |
||||
|
//上次的版本
|
||||
|
DjiApiVo djiApiVoOld = null; |
||||
|
if(djiApiVo.getVersionCount() >= 2){ |
||||
|
int versionCountOld = djiApiVo.getVersionCount() - 1; |
||||
|
DjiApiBo djiApiBoOld = new DjiApiBo(); |
||||
|
djiApiBoOld.setDjiApiType(djiApiVo.getDjiApiType()); |
||||
|
djiApiBoOld.setVersionCount(versionCountOld); |
||||
|
List<DjiApiVo> djiApiVoOldList = djiApiService.queryList(djiApiBoOld); |
||||
|
if(djiApiVoOldList.size() > 0){ |
||||
|
djiApiVoOld = djiApiVoOldList.get(0); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
DjiApiErrorBo apiErrorBo = new DjiApiErrorBo(); |
||||
|
apiErrorBo.setDjiApiId(djiApiVo.getId()); |
||||
|
apiErrorBo.setName(apiErrVo.getName()); |
||||
|
DjiApiErrorVo djiApiErrorVo = this.djiApiErrorService.selectOneApiErrorByInfo(apiErrorBo); |
||||
|
|
||||
|
try { |
||||
|
// 验证是否存在这个用户
|
||||
|
if (ObjectUtil.isNull(djiApiErrorVo)) { |
||||
|
DjiApiErrorBo apiErrBo = BeanUtil.toBean(apiErrVo, DjiApiErrorBo.class); |
||||
|
apiErrBo.setDjiApiId(djiApiVo.getId()); |
||||
|
apiErrBo.setDjiApiName(djiApiVo.getName()); |
||||
|
ValidatorUtils.validate(apiErrBo); |
||||
|
apiErrBo.setCreateBy(operUserId); |
||||
|
|
||||
|
//找历史记录,查看上一个版本是否不同
|
||||
|
if(null != djiApiVoOld){ |
||||
|
DjiApiErrorBo lastErrBo = new DjiApiErrorBo(); |
||||
|
lastErrBo.setDjiApiId(djiApiVoOld.getId()); |
||||
|
lastErrBo.setName(apiErrVo.getName()); |
||||
|
DjiApiErrorVo lastErrVo = djiApiErrorService.selectOneApiErrorByInfo(lastErrBo); |
||||
|
if(StrUtil.equals(lastErrVo.getNameCn(),apiErrVo.getNameCn())){ |
||||
|
apiErrBo.setIsChangeFlag("N"); |
||||
|
}else { |
||||
|
apiErrBo.setIsChangeFlag("Y"); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
djiApiErrorService.insertByBo(apiErrBo); |
||||
|
successNum++; |
||||
|
successMsg.append("<br/>").append(successNum).append("、错误码 ").append(apiErrBo.getName()).append(" 导入成功"); |
||||
|
} else if (isUpdateSupport) { |
||||
|
Long apiErrVoId = djiApiErrorVo.getId(); |
||||
|
DjiApiErrorBo apiErrBo = BeanUtil.toBean(apiErrVo, DjiApiErrorBo.class); |
||||
|
apiErrBo.setId(apiErrVoId); |
||||
|
ValidatorUtils.validate(apiErrBo); |
||||
|
apiErrBo.setUpdateBy(operUserId); |
||||
|
djiApiErrorService.updateByBo(apiErrBo); |
||||
|
successNum++; |
||||
|
successMsg.append("<br/>").append(successNum).append("、错误码 ").append(apiErrBo.getName()).append(" 更新成功"); |
||||
|
} else { |
||||
|
failureNum++; |
||||
|
failureMsg.append("<br/>").append(failureNum).append("、错误码 ").append(djiApiErrorVo.getName()).append(" 已存在"); |
||||
|
} |
||||
|
} catch (Exception e) { |
||||
|
failureNum++; |
||||
|
String msg = "<br/>" + failureNum + "、错误码 " + HtmlUtil.cleanHtmlTag(apiErrVo.getName()) + " 导入失败:"; |
||||
|
String message = e.getMessage(); |
||||
|
if (e instanceof ConstraintViolationException cvException) { |
||||
|
message = StreamUtils.join(cvException.getConstraintViolations(), ConstraintViolation::getMessage, ", "); |
||||
|
} |
||||
|
failureMsg.append(msg).append(message); |
||||
|
log.error(msg, e); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
} |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void doAfterAllAnalysed(AnalysisContext context) { |
||||
|
|
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public ExcelResult<DjiApiErrorVo> getExcelResult() { |
||||
|
return new ExcelResult<DjiApiErrorVo>() { |
||||
|
|
||||
|
@Override |
||||
|
public String getAnalysis() { |
||||
|
if (failureNum > 0) { |
||||
|
failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:"); |
||||
|
throw new ServiceException(failureMsg.toString()); |
||||
|
} else { |
||||
|
successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:"); |
||||
|
} |
||||
|
return successMsg.toString(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public List<DjiApiErrorVo> getList() { |
||||
|
return null; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public List<String> getErrorList() { |
||||
|
return null; |
||||
|
} |
||||
|
}; |
||||
|
} |
||||
|
} |
@ -0,0 +1,15 @@ |
|||||
|
package org.dromara.system.mapper; |
||||
|
|
||||
|
import org.dromara.system.domain.DjiApiError; |
||||
|
import org.dromara.system.domain.vo.DjiApiErrorVo; |
||||
|
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; |
||||
|
|
||||
|
/** |
||||
|
* 大疆开发-错误码Mapper接口 |
||||
|
* |
||||
|
* @author szs |
||||
|
* @date 2025-05-14 |
||||
|
*/ |
||||
|
public interface DjiApiErrorMapper extends BaseMapperPlus<DjiApiError, DjiApiErrorVo> { |
||||
|
|
||||
|
} |
@ -0,0 +1,15 @@ |
|||||
|
package org.dromara.system.mapper; |
||||
|
|
||||
|
import org.dromara.system.domain.DjiApi; |
||||
|
import org.dromara.system.domain.vo.DjiApiVo; |
||||
|
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; |
||||
|
|
||||
|
/** |
||||
|
* 大疆开发Mapper接口 |
||||
|
* |
||||
|
* @author szs |
||||
|
* @date 2025-05-14 |
||||
|
*/ |
||||
|
public interface DjiApiMapper extends BaseMapperPlus<DjiApi, DjiApiVo> { |
||||
|
|
||||
|
} |
@ -0,0 +1,72 @@ |
|||||
|
package org.dromara.system.service; |
||||
|
|
||||
|
import org.dromara.system.domain.DjiApiError; |
||||
|
import org.dromara.system.domain.vo.DjiApiErrorVo; |
||||
|
import org.dromara.system.domain.bo.DjiApiErrorBo; |
||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo; |
||||
|
import org.dromara.common.mybatis.core.page.PageQuery; |
||||
|
|
||||
|
import java.util.Collection; |
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* 大疆开发-错误码Service接口 |
||||
|
* |
||||
|
* @author szs |
||||
|
* @date 2025-05-14 |
||||
|
*/ |
||||
|
public interface IDjiApiErrorService { |
||||
|
|
||||
|
/** |
||||
|
* 查询大疆开发-错误码 |
||||
|
* |
||||
|
* @param id 主键 |
||||
|
* @return 大疆开发-错误码 |
||||
|
*/ |
||||
|
DjiApiErrorVo queryById(Long id); |
||||
|
|
||||
|
/** |
||||
|
* 分页查询大疆开发-错误码列表 |
||||
|
* |
||||
|
* @param bo 查询条件 |
||||
|
* @param pageQuery 分页参数 |
||||
|
* @return 大疆开发-错误码分页列表 |
||||
|
*/ |
||||
|
TableDataInfo<DjiApiErrorVo> queryPageList(DjiApiErrorBo bo, PageQuery pageQuery); |
||||
|
|
||||
|
/** |
||||
|
* 查询符合条件的大疆开发-错误码列表 |
||||
|
* |
||||
|
* @param bo 查询条件 |
||||
|
* @return 大疆开发-错误码列表 |
||||
|
*/ |
||||
|
List<DjiApiErrorVo> queryList(DjiApiErrorBo bo); |
||||
|
|
||||
|
/** |
||||
|
* 新增大疆开发-错误码 |
||||
|
* |
||||
|
* @param bo 大疆开发-错误码 |
||||
|
* @return 是否新增成功 |
||||
|
*/ |
||||
|
Boolean insertByBo(DjiApiErrorBo bo); |
||||
|
|
||||
|
/** |
||||
|
* 修改大疆开发-错误码 |
||||
|
* |
||||
|
* @param bo 大疆开发-错误码 |
||||
|
* @return 是否修改成功 |
||||
|
*/ |
||||
|
Boolean updateByBo(DjiApiErrorBo bo); |
||||
|
|
||||
|
/** |
||||
|
* 校验并批量删除大疆开发-错误码信息 |
||||
|
* |
||||
|
* @param ids 待删除的主键集合 |
||||
|
* @param isValid 是否进行有效性校验 |
||||
|
* @return 是否删除成功 |
||||
|
*/ |
||||
|
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid); |
||||
|
|
||||
|
DjiApiErrorVo selectOneApiErrorByInfo(DjiApiErrorBo apiErrorBo); |
||||
|
|
||||
|
} |
@ -0,0 +1,69 @@ |
|||||
|
package org.dromara.system.service; |
||||
|
|
||||
|
import org.dromara.system.domain.DjiApi; |
||||
|
import org.dromara.system.domain.vo.DjiApiVo; |
||||
|
import org.dromara.system.domain.bo.DjiApiBo; |
||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo; |
||||
|
import org.dromara.common.mybatis.core.page.PageQuery; |
||||
|
|
||||
|
import java.util.Collection; |
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* 大疆开发Service接口 |
||||
|
* |
||||
|
* @author szs |
||||
|
* @date 2025-05-14 |
||||
|
*/ |
||||
|
public interface IDjiApiService { |
||||
|
|
||||
|
/** |
||||
|
* 查询大疆开发 |
||||
|
* |
||||
|
* @param id 主键 |
||||
|
* @return 大疆开发 |
||||
|
*/ |
||||
|
DjiApiVo queryById(Long id); |
||||
|
|
||||
|
/** |
||||
|
* 分页查询大疆开发列表 |
||||
|
* |
||||
|
* @param bo 查询条件 |
||||
|
* @param pageQuery 分页参数 |
||||
|
* @return 大疆开发分页列表 |
||||
|
*/ |
||||
|
TableDataInfo<DjiApiVo> queryPageList(DjiApiBo bo, PageQuery pageQuery); |
||||
|
|
||||
|
/** |
||||
|
* 查询符合条件的大疆开发列表 |
||||
|
* |
||||
|
* @param bo 查询条件 |
||||
|
* @return 大疆开发列表 |
||||
|
*/ |
||||
|
List<DjiApiVo> queryList(DjiApiBo bo); |
||||
|
|
||||
|
/** |
||||
|
* 新增大疆开发 |
||||
|
* |
||||
|
* @param bo 大疆开发 |
||||
|
* @return 是否新增成功 |
||||
|
*/ |
||||
|
Boolean insertByBo(DjiApiBo bo); |
||||
|
|
||||
|
/** |
||||
|
* 修改大疆开发 |
||||
|
* |
||||
|
* @param bo 大疆开发 |
||||
|
* @return 是否修改成功 |
||||
|
*/ |
||||
|
Boolean updateByBo(DjiApiBo bo); |
||||
|
|
||||
|
/** |
||||
|
* 校验并批量删除大疆开发信息 |
||||
|
* |
||||
|
* @param ids 待删除的主键集合 |
||||
|
* @param isValid 是否进行有效性校验 |
||||
|
* @return 是否删除成功 |
||||
|
*/ |
||||
|
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid); |
||||
|
} |
@ -0,0 +1,146 @@ |
|||||
|
package org.dromara.system.service.impl; |
||||
|
|
||||
|
import org.dromara.common.core.utils.MapstructUtils; |
||||
|
import org.dromara.common.core.utils.StringUtils; |
||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo; |
||||
|
import org.dromara.common.mybatis.core.page.PageQuery; |
||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
||||
|
import lombok.RequiredArgsConstructor; |
||||
|
import org.dromara.system.domain.SysUser; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
import org.dromara.system.domain.bo.DjiApiErrorBo; |
||||
|
import org.dromara.system.domain.vo.DjiApiErrorVo; |
||||
|
import org.dromara.system.domain.DjiApiError; |
||||
|
import org.dromara.system.mapper.DjiApiErrorMapper; |
||||
|
import org.dromara.system.service.IDjiApiErrorService; |
||||
|
|
||||
|
import java.util.List; |
||||
|
import java.util.Map; |
||||
|
import java.util.Collection; |
||||
|
|
||||
|
/** |
||||
|
* 大疆开发-错误码Service业务层处理 |
||||
|
* |
||||
|
* @author szs |
||||
|
* @date 2025-05-14 |
||||
|
*/ |
||||
|
@RequiredArgsConstructor |
||||
|
@Service |
||||
|
public class DjiApiErrorServiceImpl implements IDjiApiErrorService { |
||||
|
|
||||
|
private final DjiApiErrorMapper baseMapper; |
||||
|
|
||||
|
/** |
||||
|
* 查询大疆开发-错误码 |
||||
|
* |
||||
|
* @param id 主键 |
||||
|
* @return 大疆开发-错误码 |
||||
|
*/ |
||||
|
@Override |
||||
|
public DjiApiErrorVo queryById(Long id){ |
||||
|
return baseMapper.selectVoById(id); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 分页查询大疆开发-错误码列表 |
||||
|
* |
||||
|
* @param bo 查询条件 |
||||
|
* @param pageQuery 分页参数 |
||||
|
* @return 大疆开发-错误码分页列表 |
||||
|
*/ |
||||
|
@Override |
||||
|
public TableDataInfo<DjiApiErrorVo> queryPageList(DjiApiErrorBo bo, PageQuery pageQuery) { |
||||
|
LambdaQueryWrapper<DjiApiError> lqw = buildQueryWrapper(bo); |
||||
|
Page<DjiApiErrorVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); |
||||
|
return TableDataInfo.build(result); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 查询符合条件的大疆开发-错误码列表 |
||||
|
* |
||||
|
* @param bo 查询条件 |
||||
|
* @return 大疆开发-错误码列表 |
||||
|
*/ |
||||
|
@Override |
||||
|
public List<DjiApiErrorVo> queryList(DjiApiErrorBo bo) { |
||||
|
LambdaQueryWrapper<DjiApiError> lqw = buildQueryWrapper(bo); |
||||
|
return baseMapper.selectVoList(lqw); |
||||
|
} |
||||
|
|
||||
|
private LambdaQueryWrapper<DjiApiError> buildQueryWrapper(DjiApiErrorBo bo) { |
||||
|
Map<String, Object> params = bo.getParams(); |
||||
|
LambdaQueryWrapper<DjiApiError> lqw = Wrappers.lambdaQuery(); |
||||
|
lqw.eq(bo.getDjiApiId() != null, DjiApiError::getDjiApiId, bo.getDjiApiId()); |
||||
|
lqw.like(StringUtils.isNotBlank(bo.getDjiApiName()), DjiApiError::getDjiApiName, bo.getDjiApiName()); |
||||
|
lqw.like(StringUtils.isNotBlank(bo.getName()), DjiApiError::getName, bo.getName()); |
||||
|
lqw.eq(StringUtils.isNotBlank(bo.getNameCn()), DjiApiError::getNameCn, bo.getNameCn()); |
||||
|
lqw.eq(StringUtils.isNotBlank(bo.getNameEn()), DjiApiError::getNameEn, bo.getNameEn()); |
||||
|
lqw.eq(StringUtils.isNotBlank(bo.getIsChangeFlag()), DjiApiError::getIsChangeFlag, bo.getIsChangeFlag()); |
||||
|
lqw.eq(bo.getChangeHistroyCount() != null, DjiApiError::getChangeHistroyCount, bo.getChangeHistroyCount()); |
||||
|
lqw.eq(StringUtils.isNotBlank(bo.getChangeHistoryIds()), DjiApiError::getChangeHistoryIds, bo.getChangeHistoryIds()); |
||||
|
return lqw; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 新增大疆开发-错误码 |
||||
|
* |
||||
|
* @param bo 大疆开发-错误码 |
||||
|
* @return 是否新增成功 |
||||
|
*/ |
||||
|
@Override |
||||
|
public Boolean insertByBo(DjiApiErrorBo bo) { |
||||
|
DjiApiError add = MapstructUtils.convert(bo, DjiApiError.class); |
||||
|
validEntityBeforeSave(add); |
||||
|
boolean flag = baseMapper.insert(add) > 0; |
||||
|
if (flag) { |
||||
|
bo.setId(add.getId()); |
||||
|
} |
||||
|
return flag; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 修改大疆开发-错误码 |
||||
|
* |
||||
|
* @param bo 大疆开发-错误码 |
||||
|
* @return 是否修改成功 |
||||
|
*/ |
||||
|
@Override |
||||
|
public Boolean updateByBo(DjiApiErrorBo bo) { |
||||
|
DjiApiError update = MapstructUtils.convert(bo, DjiApiError.class); |
||||
|
validEntityBeforeSave(update); |
||||
|
return baseMapper.updateById(update) > 0; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 保存前的数据校验 |
||||
|
*/ |
||||
|
private void validEntityBeforeSave(DjiApiError entity){ |
||||
|
//TODO 做一些数据校验,如唯一约束
|
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 校验并批量删除大疆开发-错误码信息 |
||||
|
* |
||||
|
* @param ids 待删除的主键集合 |
||||
|
* @param isValid 是否进行有效性校验 |
||||
|
* @return 是否删除成功 |
||||
|
*/ |
||||
|
@Override |
||||
|
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) { |
||||
|
if(isValid){ |
||||
|
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
|
} |
||||
|
return baseMapper.deleteByIds(ids) > 0; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public DjiApiErrorVo selectOneApiErrorByInfo(DjiApiErrorBo apiErrorBo) { |
||||
|
return baseMapper.selectVoOne(new LambdaQueryWrapper<DjiApiError>() |
||||
|
.eq(DjiApiError::getDjiApiId, apiErrorBo.getDjiApiId()) |
||||
|
.eq(DjiApiError::getName,apiErrorBo.getName())); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
} |
@ -0,0 +1,133 @@ |
|||||
|
package org.dromara.system.service.impl; |
||||
|
|
||||
|
import org.dromara.common.core.utils.MapstructUtils; |
||||
|
import org.dromara.common.core.utils.StringUtils; |
||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo; |
||||
|
import org.dromara.common.mybatis.core.page.PageQuery; |
||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
||||
|
import lombok.RequiredArgsConstructor; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
import org.dromara.system.domain.bo.DjiApiBo; |
||||
|
import org.dromara.system.domain.vo.DjiApiVo; |
||||
|
import org.dromara.system.domain.DjiApi; |
||||
|
import org.dromara.system.mapper.DjiApiMapper; |
||||
|
import org.dromara.system.service.IDjiApiService; |
||||
|
|
||||
|
import java.util.List; |
||||
|
import java.util.Map; |
||||
|
import java.util.Collection; |
||||
|
|
||||
|
/** |
||||
|
* 大疆开发Service业务层处理 |
||||
|
* |
||||
|
* @author szs |
||||
|
* @date 2025-05-14 |
||||
|
*/ |
||||
|
@RequiredArgsConstructor |
||||
|
@Service |
||||
|
public class DjiApiServiceImpl implements IDjiApiService { |
||||
|
|
||||
|
private final DjiApiMapper baseMapper; |
||||
|
|
||||
|
/** |
||||
|
* 查询大疆开发 |
||||
|
* |
||||
|
* @param id 主键 |
||||
|
* @return 大疆开发 |
||||
|
*/ |
||||
|
@Override |
||||
|
public DjiApiVo queryById(Long id){ |
||||
|
return baseMapper.selectVoById(id); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 分页查询大疆开发列表 |
||||
|
* |
||||
|
* @param bo 查询条件 |
||||
|
* @param pageQuery 分页参数 |
||||
|
* @return 大疆开发分页列表 |
||||
|
*/ |
||||
|
@Override |
||||
|
public TableDataInfo<DjiApiVo> queryPageList(DjiApiBo bo, PageQuery pageQuery) { |
||||
|
LambdaQueryWrapper<DjiApi> lqw = buildQueryWrapper(bo); |
||||
|
Page<DjiApiVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); |
||||
|
return TableDataInfo.build(result); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 查询符合条件的大疆开发列表 |
||||
|
* |
||||
|
* @param bo 查询条件 |
||||
|
* @return 大疆开发列表 |
||||
|
*/ |
||||
|
@Override |
||||
|
public List<DjiApiVo> queryList(DjiApiBo bo) { |
||||
|
LambdaQueryWrapper<DjiApi> lqw = buildQueryWrapper(bo); |
||||
|
return baseMapper.selectVoList(lqw); |
||||
|
} |
||||
|
|
||||
|
private LambdaQueryWrapper<DjiApi> buildQueryWrapper(DjiApiBo bo) { |
||||
|
Map<String, Object> params = bo.getParams(); |
||||
|
LambdaQueryWrapper<DjiApi> lqw = Wrappers.lambdaQuery(); |
||||
|
lqw.eq(StringUtils.isNotBlank(bo.getDjiApiType()), DjiApi::getDjiApiType, bo.getDjiApiType()); |
||||
|
lqw.like(StringUtils.isNotBlank(bo.getName()), DjiApi::getName, bo.getName()); |
||||
|
lqw.eq(StringUtils.isNotBlank(bo.getNameVersionNo()), DjiApi::getNameVersionNo, bo.getNameVersionNo()); |
||||
|
lqw.eq(bo.getVersionCount() != null, DjiApi::getVersionCount, bo.getVersionCount()); |
||||
|
lqw.eq(bo.getTimeRelease() != null, DjiApi::getTimeRelease, bo.getTimeRelease()); |
||||
|
return lqw; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 新增大疆开发 |
||||
|
* |
||||
|
* @param bo 大疆开发 |
||||
|
* @return 是否新增成功 |
||||
|
*/ |
||||
|
@Override |
||||
|
public Boolean insertByBo(DjiApiBo bo) { |
||||
|
DjiApi add = MapstructUtils.convert(bo, DjiApi.class); |
||||
|
validEntityBeforeSave(add); |
||||
|
boolean flag = baseMapper.insert(add) > 0; |
||||
|
if (flag) { |
||||
|
bo.setId(add.getId()); |
||||
|
} |
||||
|
return flag; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 修改大疆开发 |
||||
|
* |
||||
|
* @param bo 大疆开发 |
||||
|
* @return 是否修改成功 |
||||
|
*/ |
||||
|
@Override |
||||
|
public Boolean updateByBo(DjiApiBo bo) { |
||||
|
DjiApi update = MapstructUtils.convert(bo, DjiApi.class); |
||||
|
validEntityBeforeSave(update); |
||||
|
return baseMapper.updateById(update) > 0; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 保存前的数据校验 |
||||
|
*/ |
||||
|
private void validEntityBeforeSave(DjiApi entity){ |
||||
|
//TODO 做一些数据校验,如唯一约束
|
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 校验并批量删除大疆开发信息 |
||||
|
* |
||||
|
* @param ids 待删除的主键集合 |
||||
|
* @param isValid 是否进行有效性校验 |
||||
|
* @return 是否删除成功 |
||||
|
*/ |
||||
|
@Override |
||||
|
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) { |
||||
|
if(isValid){ |
||||
|
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
|
} |
||||
|
return baseMapper.deleteByIds(ids) > 0; |
||||
|
} |
||||
|
} |
@ -0,0 +1,7 @@ |
|||||
|
<?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="org.dromara.system.mapper.DjiApiErrorMapper"> |
||||
|
|
||||
|
</mapper> |
@ -0,0 +1,7 @@ |
|||||
|
<?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="org.dromara.system.mapper.DjiApiMapper"> |
||||
|
|
||||
|
</mapper> |
Loading…
Reference in new issue