会员开通续费

This commit is contained in:
Flow 2025-06-23 10:48:27 +08:00
parent f33411a3d8
commit fa416ada57
4 changed files with 81 additions and 0 deletions

View File

@ -132,4 +132,20 @@ public class PersonController {
PageResult<PersonDO> 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<Boolean> rechargePerson(@RequestParam("userid") Integer userid, @RequestParam("vipendtime") String vipendtime) {
personService.rechargePerson(userid, vipendtime);
return success(true);
}
@PutMapping("/become-vip")
@Operation(summary = "开通会员")
public CommonResult<Boolean> becomeVip(@Valid @RequestBody PersonBecomeVipReqVO reqVO) {
personService.becomeVip(reqVO);
return success(true);
}
}

View File

@ -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;
}

View File

@ -95,4 +95,19 @@ public interface PersonService {
* @return 用户基本信息分页
*/
PageResult<PersonDO> getPersonPageNoFamilyid(PersonPageReqVO pageReqVO);
/**
* 续费会员
*
* @param userid 用户编号
* @param vipendtime 会员结束时间
*/
void rechargePerson(Integer userid, String vipendtime);
/**
* 开通会员
*
* @param reqVO 开通会员请求参数
*/
void becomeVip(@Valid PersonBecomeVipReqVO reqVO);
}

View File

@ -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<PersonDO>()
.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<PersonDO>()
.eq(PersonDO::getId, reqVO.getUserid())
.set(PersonDO::getIsvip, reqVO.getStatus()) // 设置会员状态
.set(PersonDO::getVipstarttime, reqVO.getVipstarttime()) // 设置会员开始时间
.set(PersonDO::getVipendtime, reqVO.getVipendtime())); // 设置会员结束时间
}
}