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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,31 +3,23 @@
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.ruoyi.xq.mapper.UserAuthMapper">
|
||||
|
||||
<resultMap type="com.ruoyi.xq.domain.UserAuth" id="UserAuthResult">
|
||||
<result property="id" column="id"/>
|
||||
<result property="userId" column="user_id"/>
|
||||
<result property="usercode" column="usercode"/>
|
||||
<result property="cardNumAuth" column="card_num_auth"/>
|
||||
<result property="cardNumId" column="card_num_id"/>
|
||||
<result property="cardNumName" column="card_num_name"/>
|
||||
<result property="phoneAuth" column="phone_auth"/>
|
||||
<result property="phone" column="phone"/>
|
||||
<result property="singlePersonAuth" column="single_person_auth"/>
|
||||
<result property="educationAuth" column="education_auth"/>
|
||||
<result property="educationPic" column="education_pic"/>
|
||||
<result property="jobAuth" column="job_auth"/>
|
||||
<result property="jobAuthType" column="job_auth_type"/>
|
||||
<result property="jobPic" column="job_pic"/>
|
||||
<result property="carAuth" column="car_auth"/>
|
||||
<result property="carPic" column="car_pic"/>
|
||||
<result property="houseAuth" column="house_auth"/>
|
||||
<result property="housePic" column="house_pic"/>
|
||||
<result property="marriageAuth" column="marriage_auth"/>
|
||||
<result property="marriagePic" column="marriage_pic"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
</resultMap>
|
||||
<select id="pageApp" resultType="com.ruoyi.xq.dto.admin.user.UserAuthAdminVo">
|
||||
select t1.*, t2.nickname,t2.mobile,t2.avatar
|
||||
from xq_user_auth t1
|
||||
left join xq_user t2 on t1.user_id = t2.id
|
||||
<where>
|
||||
<if test="bo.usercode != null and bo.usercode != ''">
|
||||
and t1.usercode = #{bo.usercode}
|
||||
</if>
|
||||
<if test="bo.nickname != null and bo.nickname != ''">
|
||||
and t2.nickname like concat('%',#{bo.nickname},'%')
|
||||
</if>
|
||||
<if test="bo.mobile != null and bo.mobile != ''">
|
||||
and t2.mobile = #{bo.mobile}
|
||||
</if>
|
||||
</where>
|
||||
order by t1.id desc
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
||||
@@ -4,16 +4,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.ruoyi.xq.mapper.UserVipMapper">
|
||||
|
||||
<resultMap type="com.ruoyi.xq.domain.UserVip" id="UserVipResult">
|
||||
<result property="id" column="id"/>
|
||||
<result property="userId" column="user_id"/>
|
||||
<result property="usercode" column="usercode"/>
|
||||
<result property="vipType" column="vip_type"/>
|
||||
<result property="vipTimeout" column="vip_timeout"/>
|
||||
<result property="vipStatus" column="vip_status"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
</resultMap>
|
||||
<select id="pageApp" resultType="com.ruoyi.xq.dto.admin.user.UserVipAdminVo">
|
||||
select t1.*, t2.nickname, t2.mobile,t2.avatar
|
||||
from xq_user_vip t1
|
||||
left join xq_user t2 on t1.user_id = t2.id
|
||||
<where>
|
||||
<if test="bo.usercode != null and bo.usercode != ''">
|
||||
and t1.usercode = #{bo.usercode}
|
||||
</if>
|
||||
<if test="bo.nickname != null and bo.nickname != ''">
|
||||
and t2.nickname like concat('%',#{bo.nickname},'%')
|
||||
</if>
|
||||
<if test="bo.mobile != null and bo.mobile != ''">
|
||||
and t2.mobile = #{bo.mobile}
|
||||
</if>
|
||||
</where>
|
||||
order by id desc
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
||||
@@ -4,26 +4,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.ruoyi.xq.mapper.VipOrderMapper">
|
||||
|
||||
<resultMap type="com.ruoyi.xq.domain.VipOrder" id="VipOrderResult">
|
||||
<result property="id" column="id"/>
|
||||
<result property="userId" column="user_id"/>
|
||||
<result property="usercode" column="usercode"/>
|
||||
<result property="vipId" column="vip_id"/>
|
||||
<result property="vipType" column="vip_type"/>
|
||||
<result property="vipTime" column="vip_time"/>
|
||||
<result property="vipPrice" column="vip_price"/>
|
||||
<result property="orderNo" column="order_no"/>
|
||||
<result property="platformType" column="platform_type"/>
|
||||
<result property="payStatus" column="pay_status"/>
|
||||
<result property="payTime" column="pay_time"/>
|
||||
<result property="appid" column="appid"/>
|
||||
<result property="returnContent" column="return_content"/>
|
||||
<result property="operateIp" column="operate_ip"/>
|
||||
<result property="admin" column="admin"/>
|
||||
<result property="adminId" column="admin_id"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
</resultMap>
|
||||
<select id="pageApp" resultType="com.ruoyi.xq.dto.admin.vipOrder.VipOrderAdminVo">
|
||||
select t1.*, t2.nickname,t2.mobile,t2.avatar
|
||||
from xq_vip_order t1
|
||||
left join xq_user t2 on t1.user_id = t2.id
|
||||
<where>
|
||||
<if test="bo.usercode != null and bo.usercode != ''">
|
||||
and t1.usercode = #{bo.usercode}
|
||||
</if>
|
||||
<if test="bo.nickname != null and bo.nickname != ''">
|
||||
and t2.nickname like concat('%',#{bo.nickname},'%')
|
||||
</if>
|
||||
<if test="bo.mobile != null and bo.mobile != ''">
|
||||
and t2.mobile = #{bo.mobile}
|
||||
</if>
|
||||
</where>
|
||||
order by t1.create_time desc
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
||||
Reference in New Issue
Block a user