init
This commit is contained in:
@@ -13,6 +13,7 @@ import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.xq.domain.UserAuth;
|
||||
import com.ruoyi.xq.dto.admin.user.UserAuthAdminVo;
|
||||
import com.ruoyi.xq.service.UserAuthService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@@ -41,8 +42,8 @@ public class UserAuthController extends BaseController {
|
||||
*/
|
||||
@SaCheckPermission("xq:userAuth:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<UserAuth> list(UserAuth bo, PageQuery pageQuery) {
|
||||
Page<UserAuth> page = userAuthService.page(pageQuery.build(), Wrappers.lambdaQuery(bo));
|
||||
public TableDataInfo<UserAuthAdminVo> list(UserAuthAdminVo bo, PageQuery pageQuery) {
|
||||
Page<UserAuthAdminVo> page = userAuthService.pageApp(pageQuery, bo);
|
||||
return TableDataInfo.build(page);
|
||||
}
|
||||
|
||||
|
||||
@@ -15,12 +15,15 @@ import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.xq.domain.User;
|
||||
import com.ruoyi.xq.service.UserService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 用户管理
|
||||
@@ -46,6 +49,22 @@ public class UserController extends BaseController {
|
||||
return TableDataInfo.build(page);
|
||||
}
|
||||
|
||||
@GetMapping("/getByUsercode")
|
||||
public R<User> getByUsercode(String usercode){
|
||||
return R.ok(userService.getByUsercode(usercode));
|
||||
}
|
||||
|
||||
@GetMapping("/listByUserCode")
|
||||
public R<List<String>> listByUserCode(String usercode, int limit){
|
||||
if(limit == 0){
|
||||
limit = 40;
|
||||
}
|
||||
List<User> users = userService.list(Wrappers.lambdaQuery(User.class)
|
||||
.select(User::getUsercode)
|
||||
.like(StringUtils.isNotEmpty(usercode), User::getUsercode, usercode)
|
||||
.last("limit " + limit));
|
||||
return R.ok(users.stream().map(User::getUsercode).collect(Collectors.toList()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户管理详细信息
|
||||
|
||||
@@ -12,7 +12,11 @@ import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.xq.domain.User;
|
||||
import com.ruoyi.xq.domain.UserVip;
|
||||
import com.ruoyi.xq.dto.admin.user.UserVipAdminVo;
|
||||
import com.ruoyi.xq.dto.admin.user.req.AddVipReq;
|
||||
import com.ruoyi.xq.service.UserService;
|
||||
import com.ruoyi.xq.service.UserVipService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@@ -35,14 +39,15 @@ import java.util.Arrays;
|
||||
public class UserVipController extends BaseController {
|
||||
|
||||
private final UserVipService userVipService;
|
||||
private final UserService userService;
|
||||
|
||||
/**
|
||||
* 查询VIP用户列表
|
||||
*/
|
||||
@SaCheckPermission("xq:userVip:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<UserVip> list(UserVip bo, PageQuery pageQuery) {
|
||||
Page<UserVip> page = userVipService.page(pageQuery.build(), Wrappers.lambdaQuery(bo));
|
||||
public TableDataInfo<UserVipAdminVo> list(UserVipAdminVo bo, PageQuery pageQuery) {
|
||||
Page<UserVipAdminVo> page = userVipService.pageApp(pageQuery, bo);
|
||||
return TableDataInfo.build(page);
|
||||
}
|
||||
|
||||
@@ -58,38 +63,28 @@ public class UserVipController extends BaseController {
|
||||
return R.ok(userVipService.getById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增VIP用户
|
||||
*/
|
||||
@SaCheckPermission("xq:userVip:add")
|
||||
@Log(title = "VIP用户", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody UserVip bo) {
|
||||
return toAjax(userVipService.save(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改VIP用户
|
||||
*/
|
||||
@SaCheckPermission("xq:userVip:edit")
|
||||
@Log(title = "VIP用户", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody UserVip bo) {
|
||||
return toAjax(userVipService.updateById(bo));
|
||||
@PostMapping("/addVip")
|
||||
public R<Void> addVip(@RequestBody AddVipReq bo) {
|
||||
User user = userService.getByUsercode(bo.getUsercode());
|
||||
if(user == null){
|
||||
return R.fail("用户不存在!");
|
||||
}
|
||||
userVipService.updateVipOrderAdmin(bo,user);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除VIP用户
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("xq:userVip:remove")
|
||||
@Log(title = "VIP用户", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(userVipService.removeBatchByIds(Arrays.asList(ids)));
|
||||
@DeleteMapping("/{id}")
|
||||
public R<Void> remove(@NotNull(message = "主键不能为空") @PathVariable Long id) {
|
||||
userVipService.removeVip(id);
|
||||
return R.ok();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@ import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.xq.domain.VipOrder;
|
||||
import com.ruoyi.xq.dto.admin.vipOrder.VipOrderAdminVo;
|
||||
import com.ruoyi.xq.service.VipOrderService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@@ -41,8 +42,8 @@ public class VipOrderController extends BaseController {
|
||||
*/
|
||||
@SaCheckPermission("xq:vipOrder:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<VipOrder> list(VipOrder bo, PageQuery pageQuery) {
|
||||
Page<VipOrder> page = vipOrderService.page(pageQuery.build(), Wrappers.lambdaQuery(bo));
|
||||
public TableDataInfo<VipOrderAdminVo> list(VipOrderAdminVo bo, PageQuery pageQuery) {
|
||||
Page<VipOrderAdminVo> page = vipOrderService.pageApp(pageQuery, bo);
|
||||
return TableDataInfo.build(page);
|
||||
}
|
||||
|
||||
|
||||
@@ -41,6 +41,10 @@ public class VipOrder implements Serializable {
|
||||
* 1-普通会员 2-黄金会员 3-钻石会员
|
||||
*/
|
||||
private Integer vipType;
|
||||
/**
|
||||
* 开通月份
|
||||
*/
|
||||
private Integer vipMonth;
|
||||
/**
|
||||
* 1-月卡 2-季卡 3-年卡
|
||||
*/
|
||||
@@ -81,7 +85,7 @@ public class VipOrder implements Serializable {
|
||||
/**
|
||||
* 是否为后台管理新增
|
||||
*/
|
||||
private String admin;
|
||||
private Boolean admin;
|
||||
/**
|
||||
* 后台操作管理员ID
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.ruoyi.xq.dto.admin.user;
|
||||
|
||||
import com.ruoyi.xq.domain.UserAuth;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class UserAuthAdminVo extends UserAuth {
|
||||
/**
|
||||
* 昵称
|
||||
*/
|
||||
private String nickname;
|
||||
private String mobile;
|
||||
|
||||
private String avatar;
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.ruoyi.xq.dto.admin.user;
|
||||
|
||||
import com.ruoyi.xq.domain.UserVip;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class UserVipAdminVo extends UserVip {
|
||||
/**
|
||||
* 昵称
|
||||
*/
|
||||
private String nickname;
|
||||
private String mobile;
|
||||
|
||||
private String avatar;
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.ruoyi.xq.dto.admin.user.req;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class AddVipReq {
|
||||
private String usercode;
|
||||
private Integer openVipType;
|
||||
private Integer openVipMonthNum;
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package com.ruoyi.xq.dto.admin.vipOrder;
|
||||
|
||||
import com.ruoyi.xq.domain.VipOrder;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class VipOrderAdminVo extends VipOrder {
|
||||
private String nickname;
|
||||
private String mobile;
|
||||
|
||||
private String avatar;
|
||||
}
|
||||
@@ -1,13 +1,14 @@
|
||||
package com.ruoyi.xq.enums.vip;
|
||||
|
||||
import lombok.Getter;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
@Getter
|
||||
public enum VipTypeEnum {
|
||||
ONE(1,"一级会员"),
|
||||
TWO(2,"二级会员"),
|
||||
THREE(3,"三级会员"),
|
||||
ONE(1,"普通会员"),
|
||||
TWO(2,"黄金会员"),
|
||||
THREE(3,"钻石会员"),
|
||||
;
|
||||
private final Integer code;
|
||||
private final String text;
|
||||
@@ -16,4 +17,8 @@ public enum VipTypeEnum {
|
||||
this.code = code;
|
||||
this.text = text;
|
||||
}
|
||||
|
||||
public static VipTypeEnum getByCode(Integer code){
|
||||
return Arrays.stream(VipTypeEnum.values()).filter(i -> i.getCode().equals(code)).findFirst().orElse(null);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
package com.ruoyi.xq.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.ruoyi.xq.domain.UserAuth;
|
||||
import com.ruoyi.xq.dto.admin.user.UserAuthAdminVo;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 用户认证管理Mapper接口
|
||||
@@ -11,4 +14,5 @@ import com.ruoyi.xq.domain.UserAuth;
|
||||
*/
|
||||
public interface UserAuthMapper extends BaseMapper<UserAuth> {
|
||||
|
||||
Page<UserAuthAdminVo> pageApp(@Param("build") Page<Object> build, @Param("bo") UserAuthAdminVo bo);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
package com.ruoyi.xq.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.ruoyi.xq.domain.UserVip;
|
||||
import com.ruoyi.xq.dto.admin.user.UserVipAdminVo;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* VIP用户Mapper接口
|
||||
@@ -11,4 +14,5 @@ import com.ruoyi.xq.domain.UserVip;
|
||||
*/
|
||||
public interface UserVipMapper extends BaseMapper<UserVip> {
|
||||
|
||||
Page<UserVipAdminVo> pageApp(@Param("build") Page<Object> build, @Param("bo") UserVipAdminVo bo);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
package com.ruoyi.xq.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.ruoyi.xq.domain.VipOrder;
|
||||
import com.ruoyi.xq.dto.admin.vipOrder.VipOrderAdminVo;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* VIP订单Mapper接口
|
||||
@@ -11,4 +14,5 @@ import com.ruoyi.xq.domain.VipOrder;
|
||||
*/
|
||||
public interface VipOrderMapper extends BaseMapper<VipOrder> {
|
||||
|
||||
Page<VipOrderAdminVo> pageApp(@Param("build") Page<Object> build, @Param("bo") VipOrderAdminVo bo);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
package com.ruoyi.xq.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.xq.domain.UserAuth;
|
||||
import com.ruoyi.xq.dto.admin.user.UserAuthAdminVo;
|
||||
|
||||
/**
|
||||
* 用户认证管理Service接口
|
||||
@@ -11,4 +14,6 @@ import com.ruoyi.xq.domain.UserAuth;
|
||||
*/
|
||||
public interface UserAuthService extends IService<UserAuth> {
|
||||
UserAuth getByUserId(Long userId);
|
||||
|
||||
Page<UserAuthAdminVo> pageApp(PageQuery pageQuery, UserAuthAdminVo bo);
|
||||
}
|
||||
|
||||
@@ -1,8 +1,13 @@
|
||||
package com.ruoyi.xq.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.xq.domain.User;
|
||||
import com.ruoyi.xq.domain.UserVip;
|
||||
import com.ruoyi.xq.domain.VipOrder;
|
||||
import com.ruoyi.xq.dto.admin.user.UserVipAdminVo;
|
||||
import com.ruoyi.xq.dto.admin.user.req.AddVipReq;
|
||||
|
||||
/**
|
||||
* VIP用户Service接口
|
||||
@@ -18,4 +23,11 @@ public interface UserVipService extends IService<UserVip> {
|
||||
|
||||
UserVip getByUserVipMaster(Long userId);
|
||||
|
||||
void updateVipOrderAdmin(AddVipReq bo, User user);
|
||||
|
||||
void incsVip(User user, Integer vipType, Integer vipMonth);
|
||||
|
||||
Page<UserVipAdminVo> pageApp(PageQuery pageQuery, UserVipAdminVo bo);
|
||||
|
||||
void removeVip(Long id);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
package com.ruoyi.xq.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.xq.domain.VipOrder;
|
||||
import com.ruoyi.xq.dto.admin.vipOrder.VipOrderAdminVo;
|
||||
|
||||
/**
|
||||
* VIP订单Service接口
|
||||
@@ -11,4 +14,6 @@ import com.ruoyi.xq.domain.VipOrder;
|
||||
*/
|
||||
public interface VipOrderService extends IService<VipOrder> {
|
||||
VipOrder createVipOrder(Long userId, Long vipPriceSettingId);
|
||||
|
||||
Page<VipOrderAdminVo> pageApp(PageQuery pageQuery, VipOrderAdminVo bo);
|
||||
}
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
package com.ruoyi.xq.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.xq.domain.UserAuth;
|
||||
import com.ruoyi.xq.dto.admin.user.UserAuthAdminVo;
|
||||
import com.ruoyi.xq.mapper.UserAuthMapper;
|
||||
import com.ruoyi.xq.service.UserAuthService;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -21,4 +24,9 @@ public class UserAuthServiceImpl extends ServiceImpl<UserAuthMapper,UserAuth> im
|
||||
return this.getOne(Wrappers.lambdaQuery(UserAuth.class)
|
||||
.eq(UserAuth::getUserId, userId));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<UserAuthAdminVo> pageApp(PageQuery pageQuery, UserAuthAdminVo bo) {
|
||||
return baseMapper.pageApp(pageQuery.build(), bo);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,32 @@
|
||||
package com.ruoyi.xq.service.impl;
|
||||
|
||||
import cn.hutool.extra.spring.SpringUtil;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.common.helper.LoginHelper;
|
||||
import com.ruoyi.xq.domain.User;
|
||||
import com.ruoyi.xq.domain.UserVip;
|
||||
import com.ruoyi.xq.domain.VipOrder;
|
||||
import com.ruoyi.xq.dto.admin.user.UserVipAdminVo;
|
||||
import com.ruoyi.xq.dto.admin.user.req.AddVipReq;
|
||||
import com.ruoyi.xq.enums.common.OrderTypeEnum;
|
||||
import com.ruoyi.xq.enums.pay.PayStatusEnum;
|
||||
import com.ruoyi.xq.enums.vip.VipStatusEnum;
|
||||
import com.ruoyi.xq.enums.vip.VipTypeEnum;
|
||||
import com.ruoyi.xq.manager.OrderNoUtil;
|
||||
import com.ruoyi.xq.mapper.UserVipMapper;
|
||||
import com.ruoyi.xq.service.UserVipService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import com.ruoyi.xq.service.VipOrderService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalTime;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
|
||||
@@ -19,10 +36,12 @@ import java.util.List;
|
||||
* @author 77
|
||||
* @date 2024-03-04
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class UserVipServiceImpl extends ServiceImpl<UserVipMapper,UserVip> implements UserVipService {
|
||||
|
||||
@Autowired
|
||||
private VipOrderService vipOrderService;
|
||||
|
||||
@Override
|
||||
public UserVip getUserVip(Long userId, Integer vipType){
|
||||
return this.getOne(Wrappers.lambdaQuery(UserVip.class)
|
||||
@@ -50,4 +69,70 @@ public class UserVipServiceImpl extends ServiceImpl<UserVipMapper,UserVip> imple
|
||||
return userVipList.stream().max(Comparator.comparing(UserVip::getVipType)).orElse(null);
|
||||
}
|
||||
|
||||
/**
|
||||
* 后台管理强制覆盖VIP
|
||||
* @param bo
|
||||
* @param user
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateVipOrderAdmin(AddVipReq bo, User user) {
|
||||
VipTypeEnum vipTypeEnum = VipTypeEnum.getByCode(bo.getOpenVipType());
|
||||
if(vipTypeEnum == null || bo.getOpenVipMonthNum() == null || bo.getOpenVipMonthNum() < 1){
|
||||
throw new ServiceException("参数异常!");
|
||||
}
|
||||
String text = String.format("管理员开通%s %s个月", vipTypeEnum.getText(), bo.getOpenVipMonthNum());
|
||||
VipOrder vipOrder = new VipOrder();
|
||||
vipOrder.setUserId(user.getId());
|
||||
vipOrder.setUsercode(user.getUsercode());
|
||||
vipOrder.setVipType(vipTypeEnum.getCode());
|
||||
vipOrder.setVipMonth(bo.getOpenVipMonthNum());
|
||||
vipOrder.setOrderName(text);
|
||||
vipOrder.setOrderNo(OrderNoUtil.gen(OrderTypeEnum.VIP));
|
||||
vipOrder.setPayStatus(PayStatusEnum.NO_PAY.getCode());
|
||||
vipOrder.setAdmin(true);
|
||||
vipOrder.setAdminId(LoginHelper.getUserId());
|
||||
vipOrderService.save(vipOrder);
|
||||
UserVipService userVipService = SpringUtil.getBean(UserVipService.class);
|
||||
userVipService.incsVip(user,bo.getOpenVipType(),bo.getOpenVipMonthNum());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void incsVip(User user, Integer vipType, Integer vipMonth){
|
||||
// TODO 加锁
|
||||
UserVip userVip = this.getUserVip(user.getId(),vipType);
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
// 以前会员失效
|
||||
if(userVip == null ||
|
||||
!VipStatusEnum.NORMAL.getCode().equals(userVip.getVipStatus()) || // 会员不可用
|
||||
userVip.getVipTimeout().isBefore(now)){
|
||||
if(userVip == null){
|
||||
userVip = new UserVip();
|
||||
}
|
||||
userVip.setUserId(user.getId());
|
||||
userVip.setUsercode(user.getUsercode());
|
||||
userVip.setVipType(vipType);
|
||||
LocalDate expireDate = now.plusMonths(vipMonth).plusDays(1).toLocalDate();
|
||||
userVip.setVipTimeout(LocalDateTime.of(expireDate, LocalTime.MIN));
|
||||
userVip.setVipStatus(VipStatusEnum.NORMAL.getCode());
|
||||
this.saveOrUpdate(userVip);
|
||||
}else{
|
||||
userVip.setVipTimeout(userVip.getVipTimeout().plusMonths(vipMonth));
|
||||
this.saveOrUpdate(userVip);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<UserVipAdminVo> pageApp(PageQuery pageQuery, UserVipAdminVo bo) {
|
||||
return baseMapper.pageApp(pageQuery.build(), bo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeVip(Long id) {
|
||||
this.update(Wrappers.lambdaUpdate(UserVip.class)
|
||||
.eq(UserVip::getId,id)
|
||||
.set(UserVip::getVipStatus, VipStatusEnum.CLOSE.getCode()));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
package com.ruoyi.xq.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.xq.domain.User;
|
||||
import com.ruoyi.xq.domain.VipOrder;
|
||||
import com.ruoyi.xq.domain.VipPrice;
|
||||
import com.ruoyi.xq.dto.admin.vipOrder.VipOrderAdminVo;
|
||||
import com.ruoyi.xq.enums.common.OrderTypeEnum;
|
||||
import com.ruoyi.xq.enums.pay.PayStatusEnum;
|
||||
import com.ruoyi.xq.manager.OrderNoUtil;
|
||||
@@ -51,4 +54,9 @@ public class VipOrderServiceImpl extends ServiceImpl<VipOrderMapper,VipOrder> im
|
||||
this.save(vipOrder);
|
||||
return vipOrder;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<VipOrderAdminVo> pageApp(PageQuery pageQuery, VipOrderAdminVo bo) {
|
||||
return baseMapper.pageApp(pageQuery.build(), bo);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user