From 7acf7c7b30b506abf70379977c0f7e7a316bb3c6 Mon Sep 17 00:00:00 2001 From: zt Date: Thu, 12 Dec 2024 14:52:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../member/enums/ErrorCodeConstants.java | 4 + .../configdata/ConfigDataController.java | 95 +++++++++++++++++++ .../configdata/vo/ConfigDataPageReqVO.java | 37 ++++++++ .../admin/configdata/vo/ConfigDataRespVO.java | 44 +++++++++ .../configdata/vo/ConfigDataSaveReqVO.java | 34 +++++++ .../configtype/ConfigTypeController.java | 95 +++++++++++++++++++ .../configtype/vo/ConfigTypePageReqVO.java | 31 ++++++ .../admin/configtype/vo/ConfigTypeRespVO.java | 36 +++++++ .../configtype/vo/ConfigTypeSaveReqVO.java | 26 +++++ .../configdata/AppConfigDataController.java | 46 +++++++++ .../storeorder/AppStoreOrderController.java | 33 ++++++- .../dataobject/configdata/ConfigDataDO.java | 51 ++++++++++ .../dataobject/configtype/ConfigTypeDO.java | 43 +++++++++ .../mysql/configdata/ConfigDataMapper.java | 31 ++++++ .../mysql/configtype/ConfigTypeMapper.java | 29 ++++++ .../service/configdata/ConfigDataService.java | 58 +++++++++++ .../configdata/ConfigDataServiceImpl.java | 86 +++++++++++++++++ .../service/configtype/ConfigTypeService.java | 55 +++++++++++ .../configtype/ConfigTypeServiceImpl.java | 74 +++++++++++++++ .../module/member/util/ConfigConstants.java | 22 +++++ 20 files changed, 928 insertions(+), 2 deletions(-) create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/configdata/ConfigDataController.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/configdata/vo/ConfigDataPageReqVO.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/configdata/vo/ConfigDataRespVO.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/configdata/vo/ConfigDataSaveReqVO.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/configtype/ConfigTypeController.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/configtype/vo/ConfigTypePageReqVO.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/configtype/vo/ConfigTypeRespVO.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/configtype/vo/ConfigTypeSaveReqVO.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/configdata/AppConfigDataController.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/configdata/ConfigDataDO.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/configtype/ConfigTypeDO.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/configdata/ConfigDataMapper.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/configtype/ConfigTypeMapper.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/configdata/ConfigDataService.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/configdata/ConfigDataServiceImpl.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/configtype/ConfigTypeService.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/configtype/ConfigTypeServiceImpl.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/util/ConfigConstants.java diff --git a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/ErrorCodeConstants.java b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/ErrorCodeConstants.java index 6fc69bed..ee5b9f1b 100644 --- a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/ErrorCodeConstants.java +++ b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/ErrorCodeConstants.java @@ -164,5 +164,9 @@ public interface ErrorCodeConstants { ErrorCode TIME_NOT_SATISFY = new ErrorCode(1_004_026_00, "27号后不能充值"); ErrorCode GROUP_COUNT_NOT_EXISTS = new ErrorCode(1_004_027_00, "用户分组充值统计不存在"); + + + ErrorCode CONFIG_DATA_NOT_EXISTS = new ErrorCode(1_004_028_00, "配置数据不存在"); + ErrorCode CONFIG_TYPE_NOT_EXISTS = new ErrorCode(1_004_029_00, "配置类型不存在"); } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/configdata/ConfigDataController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/configdata/ConfigDataController.java new file mode 100644 index 00000000..2e89ffdd --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/configdata/ConfigDataController.java @@ -0,0 +1,95 @@ +package cn.iocoder.yudao.module.member.controller.admin.configdata; + +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.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +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.member.controller.admin.configdata.vo.*; +import cn.iocoder.yudao.module.member.dal.dataobject.configdata.ConfigDataDO; +import cn.iocoder.yudao.module.member.service.configdata.ConfigDataService; + +@Tag(name = "管理后台 - 配置数据") +@RestController +@RequestMapping("/member/config-data") +@Validated +public class ConfigDataController { + + @Resource + private ConfigDataService configDataService; + + @PostMapping("/create") + @Operation(summary = "创建配置数据") + @PreAuthorize("@ss.hasPermission('member:config-data:create')") + public CommonResult createConfigData(@Valid @RequestBody ConfigDataSaveReqVO createReqVO) { + return success(configDataService.createConfigData(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新配置数据") + @PreAuthorize("@ss.hasPermission('member:config-data:update')") + public CommonResult updateConfigData(@Valid @RequestBody ConfigDataSaveReqVO updateReqVO) { + configDataService.updateConfigData(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除配置数据") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('member:config-data:delete')") + public CommonResult deleteConfigData(@RequestParam("id") Long id) { + configDataService.deleteConfigData(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得配置数据") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('member:config-data:query')") + public CommonResult getConfigData(@RequestParam("id") Long id) { + ConfigDataDO configData = configDataService.getConfigData(id); + return success(BeanUtils.toBean(configData, ConfigDataRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得配置数据分页") + @PreAuthorize("@ss.hasPermission('member:config-data:query')") + public CommonResult> getConfigDataPage(@Valid ConfigDataPageReqVO pageReqVO) { + PageResult pageResult = configDataService.getConfigDataPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, ConfigDataRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出配置数据 Excel") + @PreAuthorize("@ss.hasPermission('member:config-data:export')") + @OperateLog(type = EXPORT) + public void exportConfigDataExcel(@Valid ConfigDataPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = configDataService.getConfigDataPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "配置数据.xls", "数据", ConfigDataRespVO.class, + BeanUtils.toBean(list, ConfigDataRespVO.class)); + } + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/configdata/vo/ConfigDataPageReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/configdata/vo/ConfigDataPageReqVO.java new file mode 100644 index 00000000..87488082 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/configdata/vo/ConfigDataPageReqVO.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.module.member.controller.admin.configdata.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 ConfigDataPageReqVO extends PageParam { + + @Schema(description = "配置标签") + private String label; + + @Schema(description = "配置键值") + private String value; + + @Schema(description = "键值类型,1-文本,2-时间", example = "1") + private Integer valueType; + + @Schema(description = "配置类型", example = "2") + private String dictType; + + @Schema(description = "备注", example = "随便") + private String remark; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/configdata/vo/ConfigDataRespVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/configdata/vo/ConfigDataRespVO.java new file mode 100644 index 00000000..172d8abd --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/configdata/vo/ConfigDataRespVO.java @@ -0,0 +1,44 @@ +package cn.iocoder.yudao.module.member.controller.admin.configdata.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 配置数据 Response VO") +@Data +@ExcelIgnoreUnannotated +public class ConfigDataRespVO { + + @Schema(description = "字典编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "5829") + @ExcelProperty("字典编码") + private Long id; + + @Schema(description = "配置标签", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("配置标签") + private String label; + + @Schema(description = "配置键值", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("配置键值") + private String value; + + @Schema(description = "键值类型,1-文本,2-时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty("键值类型,1-文本,2-时间") + private Integer valueType; + + @Schema(description = "配置类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @ExcelProperty("配置类型") + private String dictType; + + @Schema(description = "备注", example = "随便") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/configdata/vo/ConfigDataSaveReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/configdata/vo/ConfigDataSaveReqVO.java new file mode 100644 index 00000000..50ea1e27 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/configdata/vo/ConfigDataSaveReqVO.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.member.controller.admin.configdata.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - 配置数据新增/修改 Request VO") +@Data +public class ConfigDataSaveReqVO { + + @Schema(description = "字典编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "5829") + private Long id; + + @Schema(description = "配置标签", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "配置标签不能为空") + private String label; + + @Schema(description = "配置键值", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "配置键值不能为空") + private String value; + + @Schema(description = "键值类型,1-文本,2-时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "键值类型,1-文本,2-时间不能为空") + private Integer valueType; + + @Schema(description = "配置类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @NotEmpty(message = "配置类型不能为空") + private String dictType; + + @Schema(description = "备注", example = "随便") + private String remark; + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/configtype/ConfigTypeController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/configtype/ConfigTypeController.java new file mode 100644 index 00000000..05f04f92 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/configtype/ConfigTypeController.java @@ -0,0 +1,95 @@ +package cn.iocoder.yudao.module.member.controller.admin.configtype; + +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.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +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.member.controller.admin.configtype.vo.*; +import cn.iocoder.yudao.module.member.dal.dataobject.configtype.ConfigTypeDO; +import cn.iocoder.yudao.module.member.service.configtype.ConfigTypeService; + +@Tag(name = "管理后台 - 配置类型") +@RestController +@RequestMapping("/member/config-type") +@Validated +public class ConfigTypeController { + + @Resource + private ConfigTypeService configTypeService; + + @PostMapping("/create") + @Operation(summary = "创建配置类型") + @PreAuthorize("@ss.hasPermission('member:config-type:create')") + public CommonResult createConfigType(@Valid @RequestBody ConfigTypeSaveReqVO createReqVO) { + return success(configTypeService.createConfigType(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新配置类型") + @PreAuthorize("@ss.hasPermission('member:config-type:update')") + public CommonResult updateConfigType(@Valid @RequestBody ConfigTypeSaveReqVO updateReqVO) { + configTypeService.updateConfigType(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除配置类型") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('member:config-type:delete')") + public CommonResult deleteConfigType(@RequestParam("id") Long id) { + configTypeService.deleteConfigType(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得配置类型") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('member:config-type:query')") + public CommonResult getConfigType(@RequestParam("id") Long id) { + ConfigTypeDO configType = configTypeService.getConfigType(id); + return success(BeanUtils.toBean(configType, ConfigTypeRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得配置类型分页") + @PreAuthorize("@ss.hasPermission('member:config-type:query')") + public CommonResult> getConfigTypePage(@Valid ConfigTypePageReqVO pageReqVO) { + PageResult pageResult = configTypeService.getConfigTypePage(pageReqVO); + return success(BeanUtils.toBean(pageResult, ConfigTypeRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出配置类型 Excel") + @PreAuthorize("@ss.hasPermission('member:config-type:export')") + @OperateLog(type = EXPORT) + public void exportConfigTypeExcel(@Valid ConfigTypePageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = configTypeService.getConfigTypePage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "配置类型.xls", "数据", ConfigTypeRespVO.class, + BeanUtils.toBean(list, ConfigTypeRespVO.class)); + } + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/configtype/vo/ConfigTypePageReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/configtype/vo/ConfigTypePageReqVO.java new file mode 100644 index 00000000..c34bda10 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/configtype/vo/ConfigTypePageReqVO.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.member.controller.admin.configtype.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 ConfigTypePageReqVO extends PageParam { + + @Schema(description = "配置名称", example = "芋艿") + private String name; + + @Schema(description = "配置类型", example = "1") + private String type; + + @Schema(description = "备注", example = "随便") + private String remark; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/configtype/vo/ConfigTypeRespVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/configtype/vo/ConfigTypeRespVO.java new file mode 100644 index 00000000..40313537 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/configtype/vo/ConfigTypeRespVO.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.member.controller.admin.configtype.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 配置类型 Response VO") +@Data +@ExcelIgnoreUnannotated +public class ConfigTypeRespVO { + + @Schema(description = "字典主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "19574") + @ExcelProperty("字典主键") + private Long id; + + @Schema(description = "配置名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @ExcelProperty("配置名称") + private String name; + + @Schema(description = "配置类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty("配置类型") + private String type; + + @Schema(description = "备注", example = "随便") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/configtype/vo/ConfigTypeSaveReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/configtype/vo/ConfigTypeSaveReqVO.java new file mode 100644 index 00000000..b77e2e2f --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/configtype/vo/ConfigTypeSaveReqVO.java @@ -0,0 +1,26 @@ +package cn.iocoder.yudao.module.member.controller.admin.configtype.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - 配置类型新增/修改 Request VO") +@Data +public class ConfigTypeSaveReqVO { + + @Schema(description = "字典主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "19574") + private Long id; + + @Schema(description = "配置名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @NotEmpty(message = "配置名称不能为空") + private String name; + + @Schema(description = "配置类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotEmpty(message = "配置类型不能为空") + private String type; + + @Schema(description = "备注", example = "随便") + private String remark; + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/configdata/AppConfigDataController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/configdata/AppConfigDataController.java new file mode 100644 index 00000000..a4072638 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/configdata/AppConfigDataController.java @@ -0,0 +1,46 @@ +package cn.iocoder.yudao.module.member.controller.app.configdata; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.member.controller.admin.configdata.vo.ConfigDataRespVO; +import cn.iocoder.yudao.module.member.dal.dataobject.configdata.ConfigDataDO; +import cn.iocoder.yudao.module.member.service.configdata.ConfigDataService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "APP - 配置数据") +@RestController +@RequestMapping("/member/config-data") +@Validated +public class AppConfigDataController { + + @Resource + private ConfigDataService configDataService; + + + @GetMapping("/getList") + @Operation(summary = "获得配置数据") + public CommonResult> getConfigData(@RequestParam("dictType") String dictType) { + List configData = configDataService.getConfigDataList(dictType); + return success(BeanUtils.toBean(configData, ConfigDataRespVO.class)); + } + + @GetMapping("/getOne") + @Operation(summary = "获得配置数据") + public CommonResult getConfigData(@RequestParam("label") String label,@RequestParam("dictType") String dictType) { + ConfigDataDO configData = configDataService.getConfigData(label, dictType); + return success(BeanUtils.toBean(configData, ConfigDataRespVO.class)); + } + + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storeorder/AppStoreOrderController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storeorder/AppStoreOrderController.java index 6fab5426..5e234fcb 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storeorder/AppStoreOrderController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storeorder/AppStoreOrderController.java @@ -1,6 +1,8 @@ package cn.iocoder.yudao.module.member.controller.app.storeorder; import cn.hutool.core.collection.CollectionUtil; +import cn.iocoder.yudao.framework.common.exception.ErrorCode; +import cn.iocoder.yudao.framework.common.exception.ServiceException; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; @@ -10,11 +12,14 @@ import cn.iocoder.yudao.module.member.controller.admin.storeorder.vo.StoreOrderR import cn.iocoder.yudao.module.member.controller.app.storeorder.vo.AppStoreOrderDetailVo; import cn.iocoder.yudao.module.member.controller.app.storeorder.vo.AppStoreOrderVO; import cn.iocoder.yudao.module.member.controller.app.storeorder.vo.CardDto; +import cn.iocoder.yudao.module.member.dal.dataobject.configdata.ConfigDataDO; import cn.iocoder.yudao.module.member.dal.dataobject.storeorder.StoreOrderDO; import cn.iocoder.yudao.module.member.enums.StoreOrderStatusEnum; import cn.iocoder.yudao.module.member.service.async.MemberAsyncService; +import cn.iocoder.yudao.module.member.service.configdata.ConfigDataService; import cn.iocoder.yudao.module.member.service.storeorder.StoreOrderService; import cn.iocoder.yudao.module.member.service.storeorderdetail.StoreOrderDetailService; +import cn.iocoder.yudao.module.member.util.ConfigConstants; import cn.iocoder.yudao.module.system.api.carteen.CarteenApi; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -28,9 +33,14 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.validation.Valid; import java.math.BigDecimal; +import java.time.Duration; +import java.time.LocalTime; +import java.time.format.DateTimeFormatter; import java.util.List; +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.CONFIG_TYPE_NOT_EXISTS; @Tag(name = "APP超市 - 商品订单") @RestController @@ -46,6 +56,8 @@ public class AppStoreOrderController { private CarteenApi carteenApi; @Resource private MemberAsyncService memberAsyncService; + @Resource + private ConfigDataService configDataService; @GetMapping("/page") @@ -70,8 +82,7 @@ public class AppStoreOrderController { @PostMapping("/appCreate") @Operation(summary = "创建购物车订单") public CommonResult appCreate(@RequestBody CardDto dto) { - - + checkTime(); AddReqVO addReqVO = storeOrderService.appCreate(dto); //记录 memberAsyncService.batchRecord(addReqVO); @@ -131,4 +142,22 @@ public class AppStoreOrderController { } + public void checkTime(){ + String start = configDataService.getConfigData(ConfigConstants.START_TIME, ConfigConstants.BUY_PROHIBIT).getValue(); + String end = configDataService.getConfigData(ConfigConstants.END_TIME, ConfigConstants.BUY_PROHIBIT).getValue(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss"); + LocalTime startTime = LocalTime.parse(start, formatter); + LocalTime endTime = LocalTime.parse(end, formatter); + LocalTime now = LocalTime.now(); + + Duration startToNow = Duration.between(startTime, now); + Duration startToEnd = Duration.between(startTime, endTime); + + boolean isInRange = startToNow.isZero() ||!startToNow.isNegative() && startToNow.compareTo(startToEnd) <= 0; + if(isInRange){ + String msg = String.format("购买失败,请在%s-%s之间购买", start, end); + throw exception(new ErrorCode(1_007_904_009, msg)); + } + } + } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/configdata/ConfigDataDO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/configdata/ConfigDataDO.java new file mode 100644 index 00000000..910992d2 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/configdata/ConfigDataDO.java @@ -0,0 +1,51 @@ +package cn.iocoder.yudao.module.member.dal.dataobject.configdata; + +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("member_config_data") +@KeySequence("member_config_data_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ConfigDataDO extends BaseDO { + + /** + * 字典编码 + */ + @TableId + private Long id; + /** + * 配置标签 + */ + private String label; + /** + * 配置键值 + */ + private String value; + /** + * 键值类型,1-文本,2-时间 + */ + private Integer valueType; + /** + * 配置类型 + */ + private String dictType; + /** + * 备注 + */ + private String remark; + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/configtype/ConfigTypeDO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/configtype/ConfigTypeDO.java new file mode 100644 index 00000000..df889c9c --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/configtype/ConfigTypeDO.java @@ -0,0 +1,43 @@ +package cn.iocoder.yudao.module.member.dal.dataobject.configtype; + +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("member_config_type") +@KeySequence("member_config_type_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ConfigTypeDO extends BaseDO { + + /** + * 字典主键 + */ + @TableId + private Long id; + /** + * 配置名称 + */ + private String name; + /** + * 配置类型 + */ + private String type; + /** + * 备注 + */ + private String remark; + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/configdata/ConfigDataMapper.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/configdata/ConfigDataMapper.java new file mode 100644 index 00000000..c677c0d2 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/configdata/ConfigDataMapper.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.member.dal.mysql.configdata; + +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.member.dal.dataobject.configdata.ConfigDataDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.member.controller.admin.configdata.vo.*; + +/** + * 配置数据 Mapper + * + * @author 秦俊旗 + */ +@Mapper +public interface ConfigDataMapper extends BaseMapperX { + + default PageResult selectPage(ConfigDataPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(ConfigDataDO::getLabel, reqVO.getLabel()) + .eqIfPresent(ConfigDataDO::getValue, reqVO.getValue()) + .eqIfPresent(ConfigDataDO::getValueType, reqVO.getValueType()) + .eqIfPresent(ConfigDataDO::getDictType, reqVO.getDictType()) + .eqIfPresent(ConfigDataDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(ConfigDataDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(ConfigDataDO::getId)); + } + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/configtype/ConfigTypeMapper.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/configtype/ConfigTypeMapper.java new file mode 100644 index 00000000..959ca1f0 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/configtype/ConfigTypeMapper.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.member.dal.mysql.configtype; + +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.member.dal.dataobject.configtype.ConfigTypeDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.member.controller.admin.configtype.vo.*; + +/** + * 配置类型 Mapper + * + * @author 秦俊旗 + */ +@Mapper +public interface ConfigTypeMapper extends BaseMapperX { + + default PageResult selectPage(ConfigTypePageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(ConfigTypeDO::getName, reqVO.getName()) + .eqIfPresent(ConfigTypeDO::getType, reqVO.getType()) + .eqIfPresent(ConfigTypeDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(ConfigTypeDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(ConfigTypeDO::getId)); + } + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/configdata/ConfigDataService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/configdata/ConfigDataService.java new file mode 100644 index 00000000..25a68729 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/configdata/ConfigDataService.java @@ -0,0 +1,58 @@ +package cn.iocoder.yudao.module.member.service.configdata; + +import java.util.*; +import javax.validation.*; +import cn.iocoder.yudao.module.member.controller.admin.configdata.vo.*; +import cn.iocoder.yudao.module.member.dal.dataobject.configdata.ConfigDataDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * 配置数据 Service 接口 + * + * @author 秦俊旗 + */ +public interface ConfigDataService { + + /** + * 创建配置数据 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createConfigData(@Valid ConfigDataSaveReqVO createReqVO); + + /** + * 更新配置数据 + * + * @param updateReqVO 更新信息 + */ + void updateConfigData(@Valid ConfigDataSaveReqVO updateReqVO); + + /** + * 删除配置数据 + * + * @param id 编号 + */ + void deleteConfigData(Long id); + + /** + * 获得配置数据 + * + * @param id 编号 + * @return 配置数据 + */ + ConfigDataDO getConfigData(Long id); + + /** + * 获得配置数据分页 + * + * @param pageReqVO 分页查询 + * @return 配置数据分页 + */ + PageResult getConfigDataPage(ConfigDataPageReqVO pageReqVO); + + ConfigDataDO getConfigData(String label,String dictType); + + List getConfigDataList(String dictType); +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/configdata/ConfigDataServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/configdata/ConfigDataServiceImpl.java new file mode 100644 index 00000000..95f704e7 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/configdata/ConfigDataServiceImpl.java @@ -0,0 +1,86 @@ +package cn.iocoder.yudao.module.member.service.configdata; + +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import cn.iocoder.yudao.module.member.controller.admin.configdata.vo.*; +import cn.iocoder.yudao.module.member.dal.dataobject.configdata.ConfigDataDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.member.dal.mysql.configdata.ConfigDataMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.*; + +/** + * 配置数据 Service 实现类 + * + * @author 秦俊旗 + */ +@Service +@Validated +public class ConfigDataServiceImpl implements ConfigDataService { + + @Resource + private ConfigDataMapper configDataMapper; + + @Override + public Long createConfigData(ConfigDataSaveReqVO createReqVO) { + // 插入 + ConfigDataDO configData = BeanUtils.toBean(createReqVO, ConfigDataDO.class); + configDataMapper.insert(configData); + // 返回 + return configData.getId(); + } + + @Override + public void updateConfigData(ConfigDataSaveReqVO updateReqVO) { + // 校验存在 + validateConfigDataExists(updateReqVO.getId()); + // 更新 + ConfigDataDO updateObj = BeanUtils.toBean(updateReqVO, ConfigDataDO.class); + configDataMapper.updateById(updateObj); + } + + @Override + public void deleteConfigData(Long id) { + // 校验存在 + validateConfigDataExists(id); + // 删除 + configDataMapper.deleteById(id); + } + + private void validateConfigDataExists(Long id) { + if (configDataMapper.selectById(id) == null) { + throw exception(CONFIG_DATA_NOT_EXISTS); + } + } + + @Override + public ConfigDataDO getConfigData(Long id) { + return configDataMapper.selectById(id); + } + + @Override + public PageResult getConfigDataPage(ConfigDataPageReqVO pageReqVO) { + return configDataMapper.selectPage(pageReqVO); + } + + @Override + public ConfigDataDO getConfigData(String label, String dictType) { + return configDataMapper.selectOne(Wrappers.lambdaQuery() + .eq(ConfigDataDO::getLabel,label).eq(ConfigDataDO::getDictType,dictType)); + } + + @Override + public List getConfigDataList(String dictType) { + return configDataMapper.selectList(Wrappers.lambdaQuery() + .eq(ConfigDataDO::getDictType,dictType)); + } +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/configtype/ConfigTypeService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/configtype/ConfigTypeService.java new file mode 100644 index 00000000..8a9958fc --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/configtype/ConfigTypeService.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.member.service.configtype; + +import java.util.*; +import javax.validation.*; +import cn.iocoder.yudao.module.member.controller.admin.configtype.vo.*; +import cn.iocoder.yudao.module.member.dal.dataobject.configtype.ConfigTypeDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * 配置类型 Service 接口 + * + * @author 秦俊旗 + */ +public interface ConfigTypeService { + + /** + * 创建配置类型 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createConfigType(@Valid ConfigTypeSaveReqVO createReqVO); + + /** + * 更新配置类型 + * + * @param updateReqVO 更新信息 + */ + void updateConfigType(@Valid ConfigTypeSaveReqVO updateReqVO); + + /** + * 删除配置类型 + * + * @param id 编号 + */ + void deleteConfigType(Long id); + + /** + * 获得配置类型 + * + * @param id 编号 + * @return 配置类型 + */ + ConfigTypeDO getConfigType(Long id); + + /** + * 获得配置类型分页 + * + * @param pageReqVO 分页查询 + * @return 配置类型分页 + */ + PageResult getConfigTypePage(ConfigTypePageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/configtype/ConfigTypeServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/configtype/ConfigTypeServiceImpl.java new file mode 100644 index 00000000..181d828f --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/configtype/ConfigTypeServiceImpl.java @@ -0,0 +1,74 @@ +package cn.iocoder.yudao.module.member.service.configtype; + +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import cn.iocoder.yudao.module.member.controller.admin.configtype.vo.*; +import cn.iocoder.yudao.module.member.dal.dataobject.configtype.ConfigTypeDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.member.dal.mysql.configtype.ConfigTypeMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.*; + +/** + * 配置类型 Service 实现类 + * + * @author 秦俊旗 + */ +@Service +@Validated +public class ConfigTypeServiceImpl implements ConfigTypeService { + + @Resource + private ConfigTypeMapper configTypeMapper; + + @Override + public Long createConfigType(ConfigTypeSaveReqVO createReqVO) { + // 插入 + ConfigTypeDO configType = BeanUtils.toBean(createReqVO, ConfigTypeDO.class); + configTypeMapper.insert(configType); + // 返回 + return configType.getId(); + } + + @Override + public void updateConfigType(ConfigTypeSaveReqVO updateReqVO) { + // 校验存在 + validateConfigTypeExists(updateReqVO.getId()); + // 更新 + ConfigTypeDO updateObj = BeanUtils.toBean(updateReqVO, ConfigTypeDO.class); + configTypeMapper.updateById(updateObj); + } + + @Override + public void deleteConfigType(Long id) { + // 校验存在 + validateConfigTypeExists(id); + // 删除 + configTypeMapper.deleteById(id); + } + + private void validateConfigTypeExists(Long id) { + if (configTypeMapper.selectById(id) == null) { + throw exception(CONFIG_TYPE_NOT_EXISTS); + } + } + + @Override + public ConfigTypeDO getConfigType(Long id) { + return configTypeMapper.selectById(id); + } + + @Override + public PageResult getConfigTypePage(ConfigTypePageReqVO pageReqVO) { + return configTypeMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/util/ConfigConstants.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/util/ConfigConstants.java new file mode 100644 index 00000000..4a4704a6 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/util/ConfigConstants.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.module.member.util; + +import java.math.BigDecimal; + +/** + * @author zt + * @description + * @since 2024/4/12 + */ +public class ConfigConstants { + + /** + * 超市禁止购买时间段配置 + */ + public static final String BUY_PROHIBIT = "buy_prohibit"; + + public static final String START_TIME = "startTime"; + + public static final String END_TIME = "endTime"; + + +} \ No newline at end of file