diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/person/PersonController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/person/PersonController.java index a04b490598..06fc05310c 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/person/PersonController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/person/PersonController.java @@ -132,4 +132,20 @@ public class PersonController { PageResult pageResult = personService.getPersonPageNoFamilyid(pageReqVO); return success(BeanUtils.toBean(pageResult, PersonRespVO.class)); } + + @PutMapping("/recharge") + @Operation(summary = "续费会员") + @Parameter(name = "userid", description = "用户编号", required = true) + @Parameter(name = "vipendtime", description = "会员结束时间", required = true) + public CommonResult rechargePerson(@RequestParam("userid") Integer userid, @RequestParam("vipendtime") String vipendtime) { + personService.rechargePerson(userid, vipendtime); + return success(true); + } + + @PutMapping("/become-vip") + @Operation(summary = "开通会员") + public CommonResult becomeVip(@Valid @RequestBody PersonBecomeVipReqVO reqVO) { + personService.becomeVip(reqVO); + return success(true); + } } \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/person/vo/PersonBecomeVipReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/person/vo/PersonBecomeVipReqVO.java new file mode 100644 index 0000000000..d289f2ac92 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/person/vo/PersonBecomeVipReqVO.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.system.controller.admin.person.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 开通会员 Request VO") +@Data +public class PersonBecomeVipReqVO { + + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "用户编号不能为空") + private Integer userid; + + @Schema(description = "会员状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "会员状态不能为空") + private Integer status; + + @Schema(description = "会员开始时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "2024-01-01 00:00:00") + @NotNull(message = "会员开始时间不能为空") + private String vipstarttime; + + @Schema(description = "会员结束时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "2024-12-31 23:59:59") + @NotNull(message = "会员结束时间不能为空") + private String vipendtime; +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/person/PersonService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/person/PersonService.java index 1b5cc28f82..796fa23135 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/person/PersonService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/person/PersonService.java @@ -95,4 +95,19 @@ public interface PersonService { * @return 用户基本信息分页 */ PageResult getPersonPageNoFamilyid(PersonPageReqVO pageReqVO); + + /** + * 续费会员 + * + * @param userid 用户编号 + * @param vipendtime 会员结束时间 + */ + void rechargePerson(Integer userid, String vipendtime); + + /** + * 开通会员 + * + * @param reqVO 开通会员请求参数 + */ + void becomeVip(@Valid PersonBecomeVipReqVO reqVO); } \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/person/PersonServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/person/PersonServiceImpl.java index 53c39ac903..a0a0d01f8b 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/person/PersonServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/person/PersonServiceImpl.java @@ -128,4 +128,27 @@ public class PersonServiceImpl implements PersonService { Integer maxFamilyId = personMapper.selectMaxFamilyId(); return maxFamilyId == null ? 1 : maxFamilyId + 1; } + + @Override + public void rechargePerson(Integer userid, String vipendtime) { + // 校验用户存在 + validatePersonExists(userid); + // 更新会员结束时间 + personMapper.update(null, new LambdaUpdateWrapper() + .eq(PersonDO::getId, userid) + .set(PersonDO::getVipendtime, vipendtime) + .set(PersonDO::getIsvip, 1)); // 设置为会员状态 + } + + @Override + public void becomeVip(PersonBecomeVipReqVO reqVO) { + // 校验用户存在 + validatePersonExists(reqVO.getUserid()); + // 更新会员信息 + personMapper.update(null, new LambdaUpdateWrapper() + .eq(PersonDO::getId, reqVO.getUserid()) + .set(PersonDO::getIsvip, reqVO.getStatus()) // 设置会员状态 + .set(PersonDO::getVipstarttime, reqVO.getVipstarttime()) // 设置会员开始时间 + .set(PersonDO::getVipendtime, reqVO.getVipendtime())); // 设置会员结束时间 + } } \ No newline at end of file