This commit is contained in:
LittleBoy 2022-12-05 00:23:46 +08:00
parent 11226f53ea
commit 158b6a5163
8 changed files with 130 additions and 18 deletions

View File

@ -3,14 +3,18 @@ package me.xiaoyan.point.api.controller.admin;
import cn.dev33.satoken.stp.StpUtil; import cn.dev33.satoken.stp.StpUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import me.xiaoyan.point.api.error.BizException; import me.xiaoyan.point.api.error.BizException;
import me.xiaoyan.point.api.pojo.UserInfo;
import me.xiaoyan.point.api.pojo.vo.GoodsQueryParam;
import me.xiaoyan.point.api.pojo.vo.PageDataResult;
import me.xiaoyan.point.api.pojo.vo.UserAdminInfo; import me.xiaoyan.point.api.pojo.vo.UserAdminInfo;
import me.xiaoyan.point.api.pojo.vo.UserQueryParam;
import me.xiaoyan.point.api.service.UserInfoService;
import me.xiaoyan.point.api.util.DataStatus;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.util.HashMap; import java.util.HashMap;
@RestController @RestController
@ -19,6 +23,9 @@ import java.util.HashMap;
public class UserAdminController { public class UserAdminController {
private HashMap<String, UserAdminInfo> userStoreMap = new HashMap<>(); private HashMap<String, UserAdminInfo> userStoreMap = new HashMap<>();
@Resource
private UserInfoService userInfoService;
@PostConstruct @PostConstruct
public void initUserStore() { public void initUserStore() {
log.info("初始化用户数据"); log.info("初始化用户数据");
@ -57,4 +64,13 @@ public class UserAdminController {
return "ok"; return "ok";
} }
@PostMapping("/list")
public PageDataResult list(@RequestBody UserQueryParam param) {
return PageDataResult.convert(userInfoService.queryByPage(param));
}
@GetMapping("/remove")
public boolean remove(int id) {
return userInfoService.updateById(UserInfo.builder().id(id).status(DataStatus.DELETE).build());
}
} }

View File

@ -64,4 +64,6 @@ public class UserInfo implements Serializable {
private Integer status; private Integer status;
@TableField(exist = false) @TableField(exist = false)
private Point pointInfo; private Point pointInfo;
@TableField(exist = false)
private UserInfo parent;
} }

View File

@ -0,0 +1,9 @@
package me.xiaoyan.point.api.pojo.vo;
import lombok.Data;
@Data
public class UserQueryParam extends PageParam {
private String nickname;
private String openId;
}

View File

@ -1,8 +1,10 @@
package me.xiaoyan.point.api.service; package me.xiaoyan.point.api.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import me.xiaoyan.point.api.pojo.UserInfo; import me.xiaoyan.point.api.pojo.UserInfo;
import me.xiaoyan.point.api.pojo.vo.UserLoginData; import me.xiaoyan.point.api.pojo.vo.UserLoginData;
import me.xiaoyan.point.api.pojo.vo.UserQueryParam;
public interface UserInfoService extends IService<UserInfo> { public interface UserInfoService extends IService<UserInfo> {
@ -16,4 +18,6 @@ public interface UserInfoService extends IService<UserInfo> {
UserInfo getInfoById(Integer uid); UserInfo getInfoById(Integer uid);
UserInfo getInfoByCode(String code); UserInfo getInfoByCode(String code);
Page<UserInfo> queryByPage(UserQueryParam param);
} }

View File

@ -1,10 +1,15 @@
package me.xiaoyan.point.api.service.impl; package me.xiaoyan.point.api.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.Gson; import com.google.gson.Gson;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import me.xiaoyan.point.api.pojo.vo.UserQueryParam;
import me.xiaoyan.point.api.util.DataStatus;
import me.xiaoyan.point.api.util.QueryWrapperUtil;
import me.xiaoyan.point.api.util.WechatDecryptDataUtil; import me.xiaoyan.point.api.util.WechatDecryptDataUtil;
import me.xiaoyan.point.api.error.BizException; import me.xiaoyan.point.api.error.BizException;
import me.xiaoyan.point.api.mapper.UserInfoMapper; import me.xiaoyan.point.api.mapper.UserInfoMapper;
@ -28,6 +33,7 @@ import org.springframework.util.StringUtils;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.Serializable; import java.io.Serializable;
import java.util.List;
@Service @Service
@Slf4j @Slf4j
@ -157,4 +163,31 @@ public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo>
// 使用openid查询用户信息 // 使用openid查询用户信息
return this.getBaseMapper().selectOneByOpenId(sessionData.getOpenid()); return this.getBaseMapper().selectOneByOpenId(sessionData.getOpenid());
} }
private UserInfo getParent(int parentUid) {
if (parentUid < 1) return null;
return getBaseMapper().selectById(parentUid);
}
@Override
public Page<UserInfo> queryByPage(UserQueryParam param) {
QueryWrapper q = QueryWrapperUtil
.builder()
// 查询标题
.eq("nickname", param.getNickname())
.eq("open_id", param.getOpenId())
.ne("status", DataStatus.DELETE)
.build();
Page<UserInfo> page = getBaseMapper().selectPage(param.getPage(), q);
List<UserInfo> records = page.getRecords();
if (records != null && records.size() > 0) {
records.forEach(u -> {
u.setPointInfo(pointService.getById(u.getId()));
u.setParent(getParent(u.getParentId()));
});
}
return page;
}
} }

View File

@ -0,0 +1,7 @@
package me.xiaoyan.point.api.util;
public class DataStatus {
public static final int NORMAL = 1;
public static final int DELETE = 0;
}

View File

@ -0,0 +1,36 @@
package me.xiaoyan.point.api.util;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.util.StringUtils;
public class QueryWrapperUtil {
private QueryWrapper q;
private QueryWrapperUtil(QueryWrapper queryWrapper) {
this.q = queryWrapper;
}
public static QueryWrapperUtil builder() {
return new QueryWrapperUtil(new QueryWrapper());
}
public static QueryWrapperUtil builder(QueryWrapper queryWrapper) {
return new QueryWrapperUtil(queryWrapper);
}
public QueryWrapperUtil eq(String column, String value) {
if (StringUtils.hasText(value)) {
q.eq(column, value);
}
return this;
}
public QueryWrapperUtil ne(String column, Object value) {
q.ne(column, value);
return this;
}
public QueryWrapper build() {
return this.q;
}
}

View File

@ -14,7 +14,8 @@ create table userinfo
first_login_time datetime default current_timestamp, first_login_time datetime default current_timestamp,
update_time datetime null on update current_timestamp, update_time datetime null on update current_timestamp,
status tinyint(2) default 1 status tinyint(2) default 1
) engine = innodb collate = 'utf8mb4_general_ci' comment '用户表'; ) engine = innodb
collate = 'utf8mb4_general_ci' comment '用户表';
create table point create table point
( (
@ -24,7 +25,8 @@ create table point
expire_point int(10) null default 0, expire_point int(10) null default 0,
expire_time datetime null, expire_time datetime null,
update_time datetime null on update current_timestamp update_time datetime null on update current_timestamp
) engine = innodb collate = 'utf8mb4_general_ci' comment '积分表'; ) engine = innodb
collate = 'utf8mb4_general_ci' comment '积分表';
create table point_record create table point_record
( (
id bigint(15) primary key auto_increment, id bigint(15) primary key auto_increment,
@ -34,7 +36,8 @@ create table point_record
reason varchar(100) not null, reason varchar(100) not null,
valid_time datetime null, valid_time datetime null,
expire_time datetime null expire_time datetime null
) engine = innodb collate = 'utf8mb4_general_ci' comment '积分记录表'; ) engine = innodb
collate = 'utf8mb4_general_ci' comment '积分记录表';
create table sign_record create table sign_record
( (
@ -42,29 +45,31 @@ create table sign_record
uid int(10) not null, uid int(10) not null,
point int(10) not null, point int(10) not null,
ip varchar(50) not null, ip varchar(50) not null,
create_time datetime default current_timestamp create_time datetime default current_timestamp
) engine = innodb collate = 'utf8mb4_general_ci' comment '打卡记录表'; ) engine = innodb
collate = 'utf8mb4_general_ci' comment '打卡记录表';
drop table if exists goods;
create table goods create table goods
( (
id bigint(15) primary key auto_increment, id bigint(15) primary key auto_increment,
category tinyint(2) null default 1 comment '商品类别(1:普通 2:精选 3:秒杀 4:抽奖)', category tinyint(2) null default 1 comment '商品类别(1:普通 2:精选 3:秒杀 4:抽奖)',
type tinyint(2) null default 1 comment '商品类型(1:实物 2:虚拟)', type tinyint(2) null default 1 comment '商品类型(1:实物 2:虚拟)',
title varchar(50) not null, title varchar(50) not null,
origin_price int(10) unsigned comment '原价' default 0, origin_price int(10) unsigned comment '原价' default 0,
price int(10) unsigned not null comment '价格', price int(10) unsigned not null comment '价格',
stock int(10) unsigned not null comment '库存数量', stock int(10) unsigned not null comment '库存数量',
limit_count int(10) unsigned null default 1 comment '购买最大数量(0表示不限制)', limit_count int(10) unsigned null default 1 comment '购买最大数量(0表示不限制)',
cover varchar(200) not null comment '商品图', cover varchar(200) not null comment '商品图',
description text not null comment '描述', description text not null comment '描述',
notice varchar(500) null comment '提示', notice varchar(500) null comment '提示',
online_time datetime not null comment '上架时间', online_time datetime not null comment '上架时间',
offline_time datetime not null comment '下架时间', offline_time datetime not null comment '下架时间',
create_time datetime default current_timestamp, create_time datetime default current_timestamp,
update_time datetime null on update current_timestamp, update_time datetime null on update current_timestamp,
status tinyint(2) default 1, status tinyint(2) default 1,
index ix_title (title) index ix_title (title)
) engine = innodb comment '商品表'; ) engine = innodb
collate = 'utf8mb4_general_ci' comment '商品表';
create table order_info create table order_info
( (
@ -72,8 +77,8 @@ create table order_info
gid bigint(15) not null comment '商品编号', gid bigint(15) not null comment '商品编号',
price int(10) not null comment '价格', price int(10) not null comment '价格',
uid int(10) not null comment '用户编号', uid int(10) not null comment '用户编号',
data json null comment '订单数据', data json null comment '订单数据',
create_time datetime default current_timestamp, create_time datetime default current_timestamp,
update_time datetime null on update current_timestamp, update_time datetime null on update current_timestamp,
status tinyint(2) default 1 comment '订单状态(0:已删除 1:待确认 2:已取消 3:已完成)' status tinyint(2) default 1 comment '订单状态(0:已删除 1:待确认 2:已取消 3:已完成)'
) comment '订单表'; ) collate = 'utf8mb4_general_ci' comment '订单表';