From 26ee11df434330065038d9b3bcd088f6f32706d6 Mon Sep 17 00:00:00 2001 From: mhsnet Date: Thu, 24 Aug 2023 15:14:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90=E5=9F=BA?= =?UTF-8?q?=E7=A1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bikmk/enums/ErrorCodeConstants.java | 12 + .../yudao-module-bikmk-biz/pom.xml | 10 + .../CloudDesktopUsageDurationController.java | 102 +++++++++ .../vo/CloudDesktopUsageDurationBaseVO.java | 25 ++ .../CloudDesktopUsageDurationCreateReqVO.java | 14 ++ .../vo/CloudDesktopUsageDurationExcelVO.java | 31 +++ .../CloudDesktopUsageDurationExportReqVO.java | 23 ++ .../CloudDesktopUsageDurationPageReqVO.java | 25 ++ .../vo/CloudDesktopUsageDurationRespVO.java | 19 ++ .../CloudDesktopUsageDurationUpdateReqVO.java | 18 ++ .../CloudDesktopUsageDurationConvert.java | 34 +++ .../CloudDesktopUsageDurationDO.java | 39 ++++ .../CloudDesktopUsageDurationMapper.java | 34 +++ .../CloudDesktopUsageDurationService.java | 70 ++++++ .../CloudDesktopUsageDurationServiceImpl.java | 82 +++++++ .../CloudDesktopUsageDurationMapper.xml | 12 + .../src/main/resources/sql/sql.sql | 55 +++++ ...udDesktopUsageDurationServiceImplTest.java | 159 +++++++++++++ .../api/bikmk/cloudDesktopUsageDuration.js | 54 +++++ .../bikmk/cloudDesktopUsageDuration/index.vue | 215 ++++++++++++++++++ 20 files changed, 1033 insertions(+) create mode 100644 ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-api/src/main/java/cn/iocoder/yudao/module/bikmk/enums/ErrorCodeConstants.java create mode 100644 ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/controller/admin/clouddesktopusageduration/CloudDesktopUsageDurationController.java create mode 100644 ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/controller/admin/clouddesktopusageduration/vo/CloudDesktopUsageDurationBaseVO.java create mode 100644 ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/controller/admin/clouddesktopusageduration/vo/CloudDesktopUsageDurationCreateReqVO.java create mode 100644 ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/controller/admin/clouddesktopusageduration/vo/CloudDesktopUsageDurationExcelVO.java create mode 100644 ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/controller/admin/clouddesktopusageduration/vo/CloudDesktopUsageDurationExportReqVO.java create mode 100644 ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/controller/admin/clouddesktopusageduration/vo/CloudDesktopUsageDurationPageReqVO.java create mode 100644 ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/controller/admin/clouddesktopusageduration/vo/CloudDesktopUsageDurationRespVO.java create mode 100644 ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/controller/admin/clouddesktopusageduration/vo/CloudDesktopUsageDurationUpdateReqVO.java create mode 100644 ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/convert/clouddesktopusageduration/CloudDesktopUsageDurationConvert.java create mode 100644 ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/dal/dataobject/clouddesktopusageduration/CloudDesktopUsageDurationDO.java create mode 100644 ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/dal/mysql/clouddesktopusageduration/CloudDesktopUsageDurationMapper.java create mode 100644 ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/service/clouddesktopusageduration/CloudDesktopUsageDurationService.java create mode 100644 ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/service/clouddesktopusageduration/CloudDesktopUsageDurationServiceImpl.java create mode 100644 ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/resources/mapper/clouddesktopusageduration/CloudDesktopUsageDurationMapper.xml create mode 100644 ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/resources/sql/sql.sql create mode 100644 ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/test/java/cn/iocoder/yudao/module/bikmk/service/clouddesktopusageduration/CloudDesktopUsageDurationServiceImplTest.java create mode 100644 ruoyi-vue-pro-master/yudao-ui-admin/src/api/bikmk/cloudDesktopUsageDuration.js create mode 100644 ruoyi-vue-pro-master/yudao-ui-admin/src/views/bikmk/cloudDesktopUsageDuration/index.vue diff --git a/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-api/src/main/java/cn/iocoder/yudao/module/bikmk/enums/ErrorCodeConstants.java b/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-api/src/main/java/cn/iocoder/yudao/module/bikmk/enums/ErrorCodeConstants.java new file mode 100644 index 0000000..49d062a --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-api/src/main/java/cn/iocoder/yudao/module/bikmk/enums/ErrorCodeConstants.java @@ -0,0 +1,12 @@ +package cn.iocoder.yudao.module.bikmk.enums; + +import cn.iocoder.yudao.framework.common.exception.ErrorCode; + +/** + * bikmk 错误码枚举类 + * + * system 系统,使用 1-003-000-000 段 + */ +public interface ErrorCodeConstants { + ErrorCode CLOUD_DESKTOP_USAGE_DURATION_NOT_EXISTS = new ErrorCode(1001000000, "云桌面使用时长不存在"); +} diff --git a/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/pom.xml b/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/pom.xml index 379fd53..7b28857 100644 --- a/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/pom.xml +++ b/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/pom.xml @@ -55,5 +55,15 @@ com.aliyun aliyun-java-sdk-dysmsapi + + cn.iocoder.boot + yudao-spring-boot-starter-excel + + + cn.iocoder.boot + yudao-module-bikmk-api + 1.7.3-snapshot + compile + \ No newline at end of file diff --git a/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/controller/admin/clouddesktopusageduration/CloudDesktopUsageDurationController.java b/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/controller/admin/clouddesktopusageduration/CloudDesktopUsageDurationController.java new file mode 100644 index 0000000..8e15aca --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/controller/admin/clouddesktopusageduration/CloudDesktopUsageDurationController.java @@ -0,0 +1,102 @@ +package cn.iocoder.yudao.module.bikmk.controller.admin.clouddesktopusageduration; + +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.bikmk.controller.admin.clouddesktopusageduration.vo.*; +import cn.iocoder.yudao.module.bikmk.dal.dataobject.clouddesktopusageduration.CloudDesktopUsageDurationDO; +import cn.iocoder.yudao.module.bikmk.convert.clouddesktopusageduration.CloudDesktopUsageDurationConvert; +import cn.iocoder.yudao.module.bikmk.service.clouddesktopusageduration.CloudDesktopUsageDurationService; + +@Tag(name = "管理后台 - 云桌面使用时长") +@RestController +@RequestMapping("/bikmk/cloud-desktop-usage-duration") +@Validated +public class CloudDesktopUsageDurationController { + + @Resource + private CloudDesktopUsageDurationService cloudDesktopUsageDurationService; + + @PostMapping("/create") + @Operation(summary = "创建云桌面使用时长") + @PreAuthorize("@ss.hasPermission('bikmk:cloud-desktop-usage-duration:create')") + public CommonResult createCloudDesktopUsageDuration(@Valid @RequestBody CloudDesktopUsageDurationCreateReqVO createReqVO) { + return success(cloudDesktopUsageDurationService.createCloudDesktopUsageDuration(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新云桌面使用时长") + @PreAuthorize("@ss.hasPermission('bikmk:cloud-desktop-usage-duration:update')") + public CommonResult updateCloudDesktopUsageDuration(@Valid @RequestBody CloudDesktopUsageDurationUpdateReqVO updateReqVO) { + cloudDesktopUsageDurationService.updateCloudDesktopUsageDuration(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除云桌面使用时长") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('bikmk:cloud-desktop-usage-duration:delete')") + public CommonResult deleteCloudDesktopUsageDuration(@RequestParam("id") Long id) { + cloudDesktopUsageDurationService.deleteCloudDesktopUsageDuration(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得云桌面使用时长") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('bikmk:cloud-desktop-usage-duration:query')") + public CommonResult getCloudDesktopUsageDuration(@RequestParam("id") Long id) { + CloudDesktopUsageDurationDO cloudDesktopUsageDuration = cloudDesktopUsageDurationService.getCloudDesktopUsageDuration(id); + return success(CloudDesktopUsageDurationConvert.INSTANCE.convert(cloudDesktopUsageDuration)); + } + + @GetMapping("/list") + @Operation(summary = "获得云桌面使用时长列表") + @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") + @PreAuthorize("@ss.hasPermission('bikmk:cloud-desktop-usage-duration:query')") + public CommonResult> getCloudDesktopUsageDurationList(@RequestParam("ids") Collection ids) { + List list = cloudDesktopUsageDurationService.getCloudDesktopUsageDurationList(ids); + return success(CloudDesktopUsageDurationConvert.INSTANCE.convertList(list)); + } + + @GetMapping("/page") + @Operation(summary = "获得云桌面使用时长分页") + @PreAuthorize("@ss.hasPermission('bikmk:cloud-desktop-usage-duration:query')") + public CommonResult> getCloudDesktopUsageDurationPage(@Valid CloudDesktopUsageDurationPageReqVO pageVO) { + PageResult pageResult = cloudDesktopUsageDurationService.getCloudDesktopUsageDurationPage(pageVO); + return success(CloudDesktopUsageDurationConvert.INSTANCE.convertPage(pageResult)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出云桌面使用时长 Excel") + @PreAuthorize("@ss.hasPermission('bikmk:cloud-desktop-usage-duration:export')") + @OperateLog(type = EXPORT) + public void exportCloudDesktopUsageDurationExcel(@Valid CloudDesktopUsageDurationExportReqVO exportReqVO, + HttpServletResponse response) throws IOException { + List list = cloudDesktopUsageDurationService.getCloudDesktopUsageDurationList(exportReqVO); + // 导出 Excel + List datas = CloudDesktopUsageDurationConvert.INSTANCE.convertList02(list); + ExcelUtils.write(response, "云桌面使用时长.xls", "数据", CloudDesktopUsageDurationExcelVO.class, datas); + } + +} diff --git a/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/controller/admin/clouddesktopusageduration/vo/CloudDesktopUsageDurationBaseVO.java b/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/controller/admin/clouddesktopusageduration/vo/CloudDesktopUsageDurationBaseVO.java new file mode 100644 index 0000000..01080da --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/controller/admin/clouddesktopusageduration/vo/CloudDesktopUsageDurationBaseVO.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.bikmk.controller.admin.clouddesktopusageduration.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import javax.validation.constraints.*; + +/** + * 云桌面使用时长 Base VO,提供给添加、修改、详细的子 VO 使用 + * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 + */ +@Data +public class CloudDesktopUsageDurationBaseVO { + + @Schema(description = "云桌面客户名", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @NotNull(message = "云桌面客户名不能为空") + private String name; + + @Schema(description = "时长", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "时长不能为空") + private Integer duration; + +} diff --git a/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/controller/admin/clouddesktopusageduration/vo/CloudDesktopUsageDurationCreateReqVO.java b/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/controller/admin/clouddesktopusageduration/vo/CloudDesktopUsageDurationCreateReqVO.java new file mode 100644 index 0000000..accef27 --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/controller/admin/clouddesktopusageduration/vo/CloudDesktopUsageDurationCreateReqVO.java @@ -0,0 +1,14 @@ +package cn.iocoder.yudao.module.bikmk.controller.admin.clouddesktopusageduration.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - 云桌面使用时长创建 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class CloudDesktopUsageDurationCreateReqVO extends CloudDesktopUsageDurationBaseVO { + +} diff --git a/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/controller/admin/clouddesktopusageduration/vo/CloudDesktopUsageDurationExcelVO.java b/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/controller/admin/clouddesktopusageduration/vo/CloudDesktopUsageDurationExcelVO.java new file mode 100644 index 0000000..db5aeb6 --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/controller/admin/clouddesktopusageduration/vo/CloudDesktopUsageDurationExcelVO.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.bikmk.controller.admin.clouddesktopusageduration.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; + +import com.alibaba.excel.annotation.ExcelProperty; + +/** + * 云桌面使用时长 Excel VO + * + * @author 凯密克 + */ +@Data +public class CloudDesktopUsageDurationExcelVO { + + @ExcelProperty("编号") + private Long id; + + @ExcelProperty("云桌面客户名") + private String name; + + @ExcelProperty("时长") + private Integer duration; + + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} diff --git a/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/controller/admin/clouddesktopusageduration/vo/CloudDesktopUsageDurationExportReqVO.java b/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/controller/admin/clouddesktopusageduration/vo/CloudDesktopUsageDurationExportReqVO.java new file mode 100644 index 0000000..2aaba05 --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/controller/admin/clouddesktopusageduration/vo/CloudDesktopUsageDurationExportReqVO.java @@ -0,0 +1,23 @@ +package cn.iocoder.yudao.module.bikmk.controller.admin.clouddesktopusageduration.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import java.time.LocalDateTime; +import org.springframework.format.annotation.DateTimeFormat; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 云桌面使用时长 Excel 导出 Request VO,参数和 CloudDesktopUsageDurationPageReqVO 是一致的") +@Data +public class CloudDesktopUsageDurationExportReqVO { + + @Schema(description = "云桌面客户名", example = "芋艿") + private String name; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/controller/admin/clouddesktopusageduration/vo/CloudDesktopUsageDurationPageReqVO.java b/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/controller/admin/clouddesktopusageduration/vo/CloudDesktopUsageDurationPageReqVO.java new file mode 100644 index 0000000..60fda16 --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/controller/admin/clouddesktopusageduration/vo/CloudDesktopUsageDurationPageReqVO.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.bikmk.controller.admin.clouddesktopusageduration.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 云桌面使用时长分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class CloudDesktopUsageDurationPageReqVO extends PageParam { + + @Schema(description = "云桌面客户名", example = "芋艿") + private String name; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/controller/admin/clouddesktopusageduration/vo/CloudDesktopUsageDurationRespVO.java b/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/controller/admin/clouddesktopusageduration/vo/CloudDesktopUsageDurationRespVO.java new file mode 100644 index 0000000..439ef4e --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/controller/admin/clouddesktopusageduration/vo/CloudDesktopUsageDurationRespVO.java @@ -0,0 +1,19 @@ +package cn.iocoder.yudao.module.bikmk.controller.admin.clouddesktopusageduration.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 云桌面使用时长 Response VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class CloudDesktopUsageDurationRespVO extends CloudDesktopUsageDurationBaseVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "23326") + private Long id; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/controller/admin/clouddesktopusageduration/vo/CloudDesktopUsageDurationUpdateReqVO.java b/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/controller/admin/clouddesktopusageduration/vo/CloudDesktopUsageDurationUpdateReqVO.java new file mode 100644 index 0000000..7e60ffe --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/controller/admin/clouddesktopusageduration/vo/CloudDesktopUsageDurationUpdateReqVO.java @@ -0,0 +1,18 @@ +package cn.iocoder.yudao.module.bikmk.controller.admin.clouddesktopusageduration.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - 云桌面使用时长更新 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class CloudDesktopUsageDurationUpdateReqVO extends CloudDesktopUsageDurationBaseVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "23326") + @NotNull(message = "编号不能为空") + private Long id; + +} diff --git a/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/convert/clouddesktopusageduration/CloudDesktopUsageDurationConvert.java b/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/convert/clouddesktopusageduration/CloudDesktopUsageDurationConvert.java new file mode 100644 index 0000000..61eb5ea --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/convert/clouddesktopusageduration/CloudDesktopUsageDurationConvert.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.bikmk.convert.clouddesktopusageduration; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; + +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; +import cn.iocoder.yudao.module.bikmk.controller.admin.clouddesktopusageduration.vo.*; +import cn.iocoder.yudao.module.bikmk.dal.dataobject.clouddesktopusageduration.CloudDesktopUsageDurationDO; + +/** + * 云桌面使用时长 Convert + * + * @author 凯密克 + */ +@Mapper +public interface CloudDesktopUsageDurationConvert { + + CloudDesktopUsageDurationConvert INSTANCE = Mappers.getMapper(CloudDesktopUsageDurationConvert.class); + + CloudDesktopUsageDurationDO convert(CloudDesktopUsageDurationCreateReqVO bean); + + CloudDesktopUsageDurationDO convert(CloudDesktopUsageDurationUpdateReqVO bean); + + CloudDesktopUsageDurationRespVO convert(CloudDesktopUsageDurationDO bean); + + List convertList(List list); + + PageResult convertPage(PageResult page); + + List convertList02(List list); + +} diff --git a/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/dal/dataobject/clouddesktopusageduration/CloudDesktopUsageDurationDO.java b/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/dal/dataobject/clouddesktopusageduration/CloudDesktopUsageDurationDO.java new file mode 100644 index 0000000..53bfd2f --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/dal/dataobject/clouddesktopusageduration/CloudDesktopUsageDurationDO.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.bikmk.dal.dataobject.clouddesktopusageduration; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 云桌面使用时长 DO + * + * @author 凯密克 + */ +@TableName("bikmk_cloud_desktop_usage_duration") +@KeySequence("bikmk_cloud_desktop_usage_duration_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class CloudDesktopUsageDurationDO extends BaseDO { + + /** + * 编号 + */ + @TableId + private Long id; + /** + * 云桌面客户名 + */ + private String name; + /** + * 时长 + */ + private Integer duration; + +} diff --git a/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/dal/mysql/clouddesktopusageduration/CloudDesktopUsageDurationMapper.java b/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/dal/mysql/clouddesktopusageduration/CloudDesktopUsageDurationMapper.java new file mode 100644 index 0000000..8ac5434 --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/dal/mysql/clouddesktopusageduration/CloudDesktopUsageDurationMapper.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.bikmk.dal.mysql.clouddesktopusageduration; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.bikmk.dal.dataobject.clouddesktopusageduration.CloudDesktopUsageDurationDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.bikmk.controller.admin.clouddesktopusageduration.vo.*; + +/** + * 云桌面使用时长 Mapper + * + * @author 凯密克 + */ +@Mapper +public interface CloudDesktopUsageDurationMapper extends BaseMapperX { + + default PageResult selectPage(CloudDesktopUsageDurationPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(CloudDesktopUsageDurationDO::getName, reqVO.getName()) + .betweenIfPresent(CloudDesktopUsageDurationDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(CloudDesktopUsageDurationDO::getId)); + } + + default List selectList(CloudDesktopUsageDurationExportReqVO reqVO) { + return selectList(new LambdaQueryWrapperX() + .likeIfPresent(CloudDesktopUsageDurationDO::getName, reqVO.getName()) + .betweenIfPresent(CloudDesktopUsageDurationDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(CloudDesktopUsageDurationDO::getId)); + } + +} diff --git a/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/service/clouddesktopusageduration/CloudDesktopUsageDurationService.java b/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/service/clouddesktopusageduration/CloudDesktopUsageDurationService.java new file mode 100644 index 0000000..ffe7760 --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/service/clouddesktopusageduration/CloudDesktopUsageDurationService.java @@ -0,0 +1,70 @@ +package cn.iocoder.yudao.module.bikmk.service.clouddesktopusageduration; + +import java.util.*; +import javax.validation.*; +import cn.iocoder.yudao.module.bikmk.controller.admin.clouddesktopusageduration.vo.*; +import cn.iocoder.yudao.module.bikmk.dal.dataobject.clouddesktopusageduration.CloudDesktopUsageDurationDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; + +/** + * 云桌面使用时长 Service 接口 + * + * @author 凯密克 + */ +public interface CloudDesktopUsageDurationService { + + /** + * 创建云桌面使用时长 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createCloudDesktopUsageDuration(@Valid CloudDesktopUsageDurationCreateReqVO createReqVO); + + /** + * 更新云桌面使用时长 + * + * @param updateReqVO 更新信息 + */ + void updateCloudDesktopUsageDuration(@Valid CloudDesktopUsageDurationUpdateReqVO updateReqVO); + + /** + * 删除云桌面使用时长 + * + * @param id 编号 + */ + void deleteCloudDesktopUsageDuration(Long id); + + /** + * 获得云桌面使用时长 + * + * @param id 编号 + * @return 云桌面使用时长 + */ + CloudDesktopUsageDurationDO getCloudDesktopUsageDuration(Long id); + + /** + * 获得云桌面使用时长列表 + * + * @param ids 编号 + * @return 云桌面使用时长列表 + */ + List getCloudDesktopUsageDurationList(Collection ids); + + /** + * 获得云桌面使用时长分页 + * + * @param pageReqVO 分页查询 + * @return 云桌面使用时长分页 + */ + PageResult getCloudDesktopUsageDurationPage(CloudDesktopUsageDurationPageReqVO pageReqVO); + + /** + * 获得云桌面使用时长列表, 用于 Excel 导出 + * + * @param exportReqVO 查询条件 + * @return 云桌面使用时长列表 + */ + List getCloudDesktopUsageDurationList(CloudDesktopUsageDurationExportReqVO exportReqVO); + +} diff --git a/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/service/clouddesktopusageduration/CloudDesktopUsageDurationServiceImpl.java b/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/service/clouddesktopusageduration/CloudDesktopUsageDurationServiceImpl.java new file mode 100644 index 0000000..9d000ef --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/java/cn/iocoder/yudao/module/bikmk/service/clouddesktopusageduration/CloudDesktopUsageDurationServiceImpl.java @@ -0,0 +1,82 @@ +package cn.iocoder.yudao.module.bikmk.service.clouddesktopusageduration; + +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; + +import java.util.*; +import cn.iocoder.yudao.module.bikmk.controller.admin.clouddesktopusageduration.vo.*; +import cn.iocoder.yudao.module.bikmk.dal.dataobject.clouddesktopusageduration.CloudDesktopUsageDurationDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; + +import cn.iocoder.yudao.module.bikmk.convert.clouddesktopusageduration.CloudDesktopUsageDurationConvert; +import cn.iocoder.yudao.module.bikmk.dal.mysql.clouddesktopusageduration.CloudDesktopUsageDurationMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.bikmk.enums.ErrorCodeConstants.*; + +/** + * 云桌面使用时长 Service 实现类 + * + * @author 凯密克 + */ +@Service +@Validated +public class CloudDesktopUsageDurationServiceImpl implements CloudDesktopUsageDurationService { + + @Resource + private CloudDesktopUsageDurationMapper cloudDesktopUsageDurationMapper; + + @Override + public Long createCloudDesktopUsageDuration(CloudDesktopUsageDurationCreateReqVO createReqVO) { + // 插入 + CloudDesktopUsageDurationDO cloudDesktopUsageDuration = CloudDesktopUsageDurationConvert.INSTANCE.convert(createReqVO); + cloudDesktopUsageDurationMapper.insert(cloudDesktopUsageDuration); + // 返回 + return cloudDesktopUsageDuration.getId(); + } + + @Override + public void updateCloudDesktopUsageDuration(CloudDesktopUsageDurationUpdateReqVO updateReqVO) { + // 校验存在 + validateCloudDesktopUsageDurationExists(updateReqVO.getId()); + // 更新 + CloudDesktopUsageDurationDO updateObj = CloudDesktopUsageDurationConvert.INSTANCE.convert(updateReqVO); + cloudDesktopUsageDurationMapper.updateById(updateObj); + } + + @Override + public void deleteCloudDesktopUsageDuration(Long id) { + // 校验存在 + validateCloudDesktopUsageDurationExists(id); + // 删除 + cloudDesktopUsageDurationMapper.deleteById(id); + } + + private void validateCloudDesktopUsageDurationExists(Long id) { + if (cloudDesktopUsageDurationMapper.selectById(id) == null) { + throw exception(CLOUD_DESKTOP_USAGE_DURATION_NOT_EXISTS); + } + } + + @Override + public CloudDesktopUsageDurationDO getCloudDesktopUsageDuration(Long id) { + return cloudDesktopUsageDurationMapper.selectById(id); + } + + @Override + public List getCloudDesktopUsageDurationList(Collection ids) { + return cloudDesktopUsageDurationMapper.selectBatchIds(ids); + } + + @Override + public PageResult getCloudDesktopUsageDurationPage(CloudDesktopUsageDurationPageReqVO pageReqVO) { + return cloudDesktopUsageDurationMapper.selectPage(pageReqVO); + } + + @Override + public List getCloudDesktopUsageDurationList(CloudDesktopUsageDurationExportReqVO exportReqVO) { + return cloudDesktopUsageDurationMapper.selectList(exportReqVO); + } + +} diff --git a/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/resources/mapper/clouddesktopusageduration/CloudDesktopUsageDurationMapper.xml b/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/resources/mapper/clouddesktopusageduration/CloudDesktopUsageDurationMapper.xml new file mode 100644 index 0000000..e5185f6 --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/resources/mapper/clouddesktopusageduration/CloudDesktopUsageDurationMapper.xml @@ -0,0 +1,12 @@ + + + + + + + diff --git a/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/resources/sql/sql.sql b/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/resources/sql/sql.sql new file mode 100644 index 0000000..f2f27e8 --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/main/resources/sql/sql.sql @@ -0,0 +1,55 @@ +-- 菜单 SQL +INSERT INTO system_menu( + name, permission, type, sort, parent_id, + path, icon, component, status, component_name +) +VALUES ( + '云桌面使用时长管理', '', 2, 0, 2163, + 'cloud-desktop-usage-duration', '', 'bikmk/cloudDesktopUsageDuration/index', 0, 'CloudDesktopUsageDuration' +); + +-- 按钮父菜单ID +-- 暂时只支持 MySQL。如果你是 Oracle、PostgreSQL、SQLServer 的话,需要手动修改 @parentId 的部分的代码 +SELECT @parentId := LAST_INSERT_ID(); + +-- 按钮 SQL +INSERT INTO system_menu( + name, permission, type, sort, parent_id, + path, icon, component, status +) +VALUES ( + '云桌面使用时长查询', 'bikmk:cloud-desktop-usage-duration:query', 3, 1, @parentId, + '', '', '', 0 +); +INSERT INTO system_menu( + name, permission, type, sort, parent_id, + path, icon, component, status +) +VALUES ( + '云桌面使用时长创建', 'bikmk:cloud-desktop-usage-duration:create', 3, 2, @parentId, + '', '', '', 0 +); +INSERT INTO system_menu( + name, permission, type, sort, parent_id, + path, icon, component, status +) +VALUES ( + '云桌面使用时长更新', 'bikmk:cloud-desktop-usage-duration:update', 3, 3, @parentId, + '', '', '', 0 +); +INSERT INTO system_menu( + name, permission, type, sort, parent_id, + path, icon, component, status +) +VALUES ( + '云桌面使用时长删除', 'bikmk:cloud-desktop-usage-duration:delete', 3, 4, @parentId, + '', '', '', 0 +); +INSERT INTO system_menu( + name, permission, type, sort, parent_id, + path, icon, component, status +) +VALUES ( + '云桌面使用时长导出', 'bikmk:cloud-desktop-usage-duration:export', 3, 5, @parentId, + '', '', '', 0 +); diff --git a/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/test/java/cn/iocoder/yudao/module/bikmk/service/clouddesktopusageduration/CloudDesktopUsageDurationServiceImplTest.java b/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/test/java/cn/iocoder/yudao/module/bikmk/service/clouddesktopusageduration/CloudDesktopUsageDurationServiceImplTest.java new file mode 100644 index 0000000..576ef8c --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-module-bikmk/yudao-module-bikmk-biz/src/test/java/cn/iocoder/yudao/module/bikmk/service/clouddesktopusageduration/CloudDesktopUsageDurationServiceImplTest.java @@ -0,0 +1,159 @@ +package cn.iocoder.yudao.module.bikmk.service.clouddesktopusageduration; + +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.mock.mockito.MockBean; + +import javax.annotation.Resource; + +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; + +import cn.iocoder.yudao.module.bikmk.controller.admin.clouddesktopusageduration.vo.*; +import cn.iocoder.yudao.module.bikmk.dal.dataobject.clouddesktopusageduration.CloudDesktopUsageDurationDO; +import cn.iocoder.yudao.module.bikmk.dal.mysql.clouddesktopusageduration.CloudDesktopUsageDurationMapper; +import cn.iocoder.yudao.framework.common.pojo.PageResult; + +import javax.annotation.Resource; +import org.springframework.context.annotation.Import; +import java.util.*; +import java.time.LocalDateTime; + +import static cn.hutool.core.util.RandomUtil.*; +import static cn.iocoder.yudao.module.bikmk.enums.ErrorCodeConstants.*; +import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.*; +import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*; +import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.*; +import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.*; +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.*; +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.Mockito.*; + +/** + * {@link CloudDesktopUsageDurationServiceImpl} 的单元测试类 + * + * @author 凯密克 + */ +@Import(CloudDesktopUsageDurationServiceImpl.class) +public class CloudDesktopUsageDurationServiceImplTest extends BaseDbUnitTest { + + @Resource + private CloudDesktopUsageDurationServiceImpl cloudDesktopUsageDurationService; + + @Resource + private CloudDesktopUsageDurationMapper cloudDesktopUsageDurationMapper; + + @Test + public void testCreateCloudDesktopUsageDuration_success() { + // 准备参数 + CloudDesktopUsageDurationCreateReqVO reqVO = randomPojo(CloudDesktopUsageDurationCreateReqVO.class); + + // 调用 + Long cloudDesktopUsageDurationId = cloudDesktopUsageDurationService.createCloudDesktopUsageDuration(reqVO); + // 断言 + assertNotNull(cloudDesktopUsageDurationId); + // 校验记录的属性是否正确 + CloudDesktopUsageDurationDO cloudDesktopUsageDuration = cloudDesktopUsageDurationMapper.selectById(cloudDesktopUsageDurationId); + assertPojoEquals(reqVO, cloudDesktopUsageDuration); + } + + @Test + public void testUpdateCloudDesktopUsageDuration_success() { + // mock 数据 + CloudDesktopUsageDurationDO dbCloudDesktopUsageDuration = randomPojo(CloudDesktopUsageDurationDO.class); + cloudDesktopUsageDurationMapper.insert(dbCloudDesktopUsageDuration);// @Sql: 先插入出一条存在的数据 + // 准备参数 + CloudDesktopUsageDurationUpdateReqVO reqVO = randomPojo(CloudDesktopUsageDurationUpdateReqVO.class, o -> { + o.setId(dbCloudDesktopUsageDuration.getId()); // 设置更新的 ID + }); + + // 调用 + cloudDesktopUsageDurationService.updateCloudDesktopUsageDuration(reqVO); + // 校验是否更新正确 + CloudDesktopUsageDurationDO cloudDesktopUsageDuration = cloudDesktopUsageDurationMapper.selectById(reqVO.getId()); // 获取最新的 + assertPojoEquals(reqVO, cloudDesktopUsageDuration); + } + + @Test + public void testUpdateCloudDesktopUsageDuration_notExists() { + // 准备参数 + CloudDesktopUsageDurationUpdateReqVO reqVO = randomPojo(CloudDesktopUsageDurationUpdateReqVO.class); + + // 调用, 并断言异常 + assertServiceException(() -> cloudDesktopUsageDurationService.updateCloudDesktopUsageDuration(reqVO), CLOUD_DESKTOP_USAGE_DURATION_NOT_EXISTS); + } + + @Test + public void testDeleteCloudDesktopUsageDuration_success() { + // mock 数据 + CloudDesktopUsageDurationDO dbCloudDesktopUsageDuration = randomPojo(CloudDesktopUsageDurationDO.class); + cloudDesktopUsageDurationMapper.insert(dbCloudDesktopUsageDuration);// @Sql: 先插入出一条存在的数据 + // 准备参数 + Long id = dbCloudDesktopUsageDuration.getId(); + + // 调用 + cloudDesktopUsageDurationService.deleteCloudDesktopUsageDuration(id); + // 校验数据不存在了 + assertNull(cloudDesktopUsageDurationMapper.selectById(id)); + } + + @Test + public void testDeleteCloudDesktopUsageDuration_notExists() { + // 准备参数 + Long id = randomLongId(); + + // 调用, 并断言异常 + assertServiceException(() -> cloudDesktopUsageDurationService.deleteCloudDesktopUsageDuration(id), CLOUD_DESKTOP_USAGE_DURATION_NOT_EXISTS); + } + + @Test + @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解 + public void testGetCloudDesktopUsageDurationPage() { + // mock 数据 + CloudDesktopUsageDurationDO dbCloudDesktopUsageDuration = randomPojo(CloudDesktopUsageDurationDO.class, o -> { // 等会查询到 + o.setName(null); + o.setCreateTime(null); + }); + cloudDesktopUsageDurationMapper.insert(dbCloudDesktopUsageDuration); + // 测试 name 不匹配 + cloudDesktopUsageDurationMapper.insert(cloneIgnoreId(dbCloudDesktopUsageDuration, o -> o.setName(null))); + // 测试 createTime 不匹配 + cloudDesktopUsageDurationMapper.insert(cloneIgnoreId(dbCloudDesktopUsageDuration, o -> o.setCreateTime(null))); + // 准备参数 + CloudDesktopUsageDurationPageReqVO reqVO = new CloudDesktopUsageDurationPageReqVO(); + reqVO.setName(null); + reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28)); + + // 调用 + PageResult pageResult = cloudDesktopUsageDurationService.getCloudDesktopUsageDurationPage(reqVO); + // 断言 + assertEquals(1, pageResult.getTotal()); + assertEquals(1, pageResult.getList().size()); + assertPojoEquals(dbCloudDesktopUsageDuration, pageResult.getList().get(0)); + } + + @Test + @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解 + public void testGetCloudDesktopUsageDurationList() { + // mock 数据 + CloudDesktopUsageDurationDO dbCloudDesktopUsageDuration = randomPojo(CloudDesktopUsageDurationDO.class, o -> { // 等会查询到 + o.setName(null); + o.setCreateTime(null); + }); + cloudDesktopUsageDurationMapper.insert(dbCloudDesktopUsageDuration); + // 测试 name 不匹配 + cloudDesktopUsageDurationMapper.insert(cloneIgnoreId(dbCloudDesktopUsageDuration, o -> o.setName(null))); + // 测试 createTime 不匹配 + cloudDesktopUsageDurationMapper.insert(cloneIgnoreId(dbCloudDesktopUsageDuration, o -> o.setCreateTime(null))); + // 准备参数 + CloudDesktopUsageDurationExportReqVO reqVO = new CloudDesktopUsageDurationExportReqVO(); + reqVO.setName(null); + reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28)); + + // 调用 + List list = cloudDesktopUsageDurationService.getCloudDesktopUsageDurationList(reqVO); + // 断言 + assertEquals(1, list.size()); + assertPojoEquals(dbCloudDesktopUsageDuration, list.get(0)); + } + +} diff --git a/ruoyi-vue-pro-master/yudao-ui-admin/src/api/bikmk/cloudDesktopUsageDuration.js b/ruoyi-vue-pro-master/yudao-ui-admin/src/api/bikmk/cloudDesktopUsageDuration.js new file mode 100644 index 0000000..e65edf2 --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-ui-admin/src/api/bikmk/cloudDesktopUsageDuration.js @@ -0,0 +1,54 @@ +import request from '@/utils/request' + +// 创建云桌面使用时长 +export function createCloudDesktopUsageDuration(data) { + return request({ + url: '/bikmk/cloud-desktop-usage-duration/create', + method: 'post', + data: data + }) +} + +// 更新云桌面使用时长 +export function updateCloudDesktopUsageDuration(data) { + return request({ + url: '/bikmk/cloud-desktop-usage-duration/update', + method: 'put', + data: data + }) +} + +// 删除云桌面使用时长 +export function deleteCloudDesktopUsageDuration(id) { + return request({ + url: '/bikmk/cloud-desktop-usage-duration/delete?id=' + id, + method: 'delete' + }) +} + +// 获得云桌面使用时长 +export function getCloudDesktopUsageDuration(id) { + return request({ + url: '/bikmk/cloud-desktop-usage-duration/get?id=' + id, + method: 'get' + }) +} + +// 获得云桌面使用时长分页 +export function getCloudDesktopUsageDurationPage(query) { + return request({ + url: '/bikmk/cloud-desktop-usage-duration/page', + method: 'get', + params: query + }) +} + +// 导出云桌面使用时长 Excel +export function exportCloudDesktopUsageDurationExcel(query) { + return request({ + url: '/bikmk/cloud-desktop-usage-duration/export-excel', + method: 'get', + params: query, + responseType: 'blob' + }) +} diff --git a/ruoyi-vue-pro-master/yudao-ui-admin/src/views/bikmk/cloudDesktopUsageDuration/index.vue b/ruoyi-vue-pro-master/yudao-ui-admin/src/views/bikmk/cloudDesktopUsageDuration/index.vue new file mode 100644 index 0000000..d43391e --- /dev/null +++ b/ruoyi-vue-pro-master/yudao-ui-admin/src/views/bikmk/cloudDesktopUsageDuration/index.vue @@ -0,0 +1,215 @@ + + +