新增会员管理模块
This commit is contained in:
parent
f75346e9cc
commit
18307a2312
|
@ -0,0 +1,25 @@
|
|||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<groupId>net.maku</groupId>
|
||||
<artifactId>maku-boot-module</artifactId>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>maku-module-member</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>net.maku</groupId>
|
||||
<artifactId>maku-framework</artifactId>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.github.binarywang</groupId>
|
||||
<artifactId>weixin-java-miniapp</artifactId>
|
||||
<version>4.6.0</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
|
@ -0,0 +1,76 @@
|
|||
package net.maku.member.controller;
|
||||
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import jakarta.validation.Valid;
|
||||
import lombok.AllArgsConstructor;
|
||||
import net.maku.framework.common.utils.PageResult;
|
||||
import net.maku.framework.common.utils.Result;
|
||||
import net.maku.member.convert.MemberUserConvert;
|
||||
import net.maku.member.entity.MemberUserEntity;
|
||||
import net.maku.member.query.MemberUserQuery;
|
||||
import net.maku.member.service.MemberUserService;
|
||||
import net.maku.member.vo.MemberUserVO;
|
||||
import org.springdoc.core.annotations.ParameterObject;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 会员管理
|
||||
*
|
||||
* @author 阿沐 babamu@126.com
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("member/user")
|
||||
@Tag(name = "会员管理")
|
||||
@AllArgsConstructor
|
||||
public class MemberUserController {
|
||||
private final MemberUserService memberUserService;
|
||||
|
||||
@GetMapping("page")
|
||||
@Operation(summary = "分页")
|
||||
@PreAuthorize("hasAuthority('member:user:all')")
|
||||
public Result<PageResult<MemberUserVO>> page(@ParameterObject @Valid MemberUserQuery query) {
|
||||
PageResult<MemberUserVO> page = memberUserService.page(query);
|
||||
|
||||
return Result.ok(page);
|
||||
}
|
||||
|
||||
@GetMapping("{id}")
|
||||
@Operation(summary = "信息")
|
||||
@PreAuthorize("hasAuthority('member:user:all')")
|
||||
public Result<MemberUserVO> get(@PathVariable("id") Long id) {
|
||||
MemberUserEntity entity = memberUserService.getById(id);
|
||||
|
||||
return Result.ok(MemberUserConvert.INSTANCE.convert(entity));
|
||||
}
|
||||
|
||||
@PostMapping
|
||||
@Operation(summary = "保存")
|
||||
@PreAuthorize("hasAuthority('member:user:all')")
|
||||
public Result<String> save(@RequestBody MemberUserVO vo) {
|
||||
memberUserService.save(vo);
|
||||
|
||||
return Result.ok();
|
||||
}
|
||||
|
||||
@PutMapping
|
||||
@Operation(summary = "修改")
|
||||
@PreAuthorize("hasAuthority('member:user:all')")
|
||||
public Result<String> update(@RequestBody @Valid MemberUserVO vo) {
|
||||
memberUserService.update(vo);
|
||||
|
||||
return Result.ok();
|
||||
}
|
||||
|
||||
@DeleteMapping
|
||||
@Operation(summary = "删除")
|
||||
@PreAuthorize("hasAuthority('member:user:all')")
|
||||
public Result<String> delete(@RequestBody List<Long> idList) {
|
||||
memberUserService.delete(idList);
|
||||
|
||||
return Result.ok();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
package net.maku.member.convert;
|
||||
|
||||
import net.maku.member.entity.MemberUserEntity;
|
||||
import net.maku.member.vo.MemberUserVO;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 会员管理
|
||||
*
|
||||
* @author 阿沐 babamu@126.com
|
||||
*/
|
||||
@Mapper
|
||||
public interface MemberUserConvert {
|
||||
MemberUserConvert INSTANCE = Mappers.getMapper(MemberUserConvert.class);
|
||||
|
||||
MemberUserEntity convert(MemberUserVO vo);
|
||||
|
||||
MemberUserVO convert(MemberUserEntity entity);
|
||||
|
||||
List<MemberUserVO> convertList(List<MemberUserEntity> list);
|
||||
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
package net.maku.member.dao;
|
||||
|
||||
import net.maku.framework.mybatis.dao.BaseDao;
|
||||
import net.maku.member.entity.MemberUserEntity;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* 会员管理
|
||||
*
|
||||
* @author 阿沐 babamu@126.com
|
||||
*/
|
||||
@Mapper
|
||||
public interface MemberUserDao extends BaseDao<MemberUserEntity> {
|
||||
|
||||
}
|
|
@ -0,0 +1,89 @@
|
|||
package net.maku.member.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 会员管理
|
||||
*
|
||||
* @author 阿沐 babamu@126.com
|
||||
*/
|
||||
|
||||
@Data
|
||||
@TableName("member_user")
|
||||
public class MemberUserEntity {
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 昵称
|
||||
*/
|
||||
private String nickName;
|
||||
|
||||
/**
|
||||
* 手机号
|
||||
*/
|
||||
private String mobile;
|
||||
|
||||
/**
|
||||
* 头像
|
||||
*/
|
||||
private String avatar;
|
||||
|
||||
/**
|
||||
* 出生日期
|
||||
*/
|
||||
private LocalDateTime birthday;
|
||||
|
||||
/**
|
||||
* 性别
|
||||
*/
|
||||
private Integer gender;
|
||||
|
||||
/**
|
||||
* 第三方平台,唯一标识
|
||||
*/
|
||||
private String openid;
|
||||
|
||||
/**
|
||||
* 最后登录IP
|
||||
*/
|
||||
private String lastLoginIp;
|
||||
|
||||
/**
|
||||
* 最后登录时间
|
||||
*/
|
||||
private LocalDateTime lastLoginTime;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* 版本号
|
||||
*/
|
||||
private Integer version;
|
||||
|
||||
/**
|
||||
* 删除标识
|
||||
*/
|
||||
private Integer deleted;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
package net.maku.member.query;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import net.maku.framework.common.query.Query;
|
||||
|
||||
/**
|
||||
* 会员管理查询
|
||||
*
|
||||
* @author 阿沐 babamu@126.com
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Schema(description = "会员管理查询")
|
||||
public class MemberUserQuery extends Query {
|
||||
@Schema(description = "昵称")
|
||||
private String nickName;
|
||||
|
||||
@Schema(description = "手机号")
|
||||
private String mobile;
|
||||
|
||||
@Schema(description = "性别")
|
||||
private Integer gender;
|
||||
|
||||
@Schema(description = "状态")
|
||||
private Integer status;
|
||||
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
package net.maku.member.service;
|
||||
|
||||
import net.maku.framework.common.utils.PageResult;
|
||||
import net.maku.framework.mybatis.service.BaseService;
|
||||
import net.maku.member.entity.MemberUserEntity;
|
||||
import net.maku.member.query.MemberUserQuery;
|
||||
import net.maku.member.vo.MemberUserVO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 会员管理
|
||||
*
|
||||
* @author 阿沐 babamu@126.com
|
||||
*/
|
||||
public interface MemberUserService extends BaseService<MemberUserEntity> {
|
||||
|
||||
PageResult<MemberUserVO> page(MemberUserQuery query);
|
||||
|
||||
void save(MemberUserVO vo);
|
||||
|
||||
void update(MemberUserVO vo);
|
||||
|
||||
void delete(List<Long> idList);
|
||||
}
|
|
@ -0,0 +1,63 @@
|
|||
package net.maku.member.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import lombok.AllArgsConstructor;
|
||||
import net.maku.framework.common.utils.PageResult;
|
||||
import net.maku.framework.mybatis.service.impl.BaseServiceImpl;
|
||||
import net.maku.member.convert.MemberUserConvert;
|
||||
import net.maku.member.entity.MemberUserEntity;
|
||||
import net.maku.member.query.MemberUserQuery;
|
||||
import net.maku.member.vo.MemberUserVO;
|
||||
import net.maku.member.dao.MemberUserDao;
|
||||
import net.maku.member.service.MemberUserService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 会员管理
|
||||
*
|
||||
* @author 阿沐 babamu@126.com
|
||||
* @since 1.0.0 2024-03-11
|
||||
*/
|
||||
@Service
|
||||
@AllArgsConstructor
|
||||
public class MemberUserServiceImpl extends BaseServiceImpl<MemberUserDao, MemberUserEntity> implements MemberUserService {
|
||||
|
||||
@Override
|
||||
public PageResult<MemberUserVO> page(MemberUserQuery query) {
|
||||
IPage<MemberUserEntity> page = baseMapper.selectPage(getPage(query), getWrapper(query));
|
||||
|
||||
return new PageResult<>(MemberUserConvert.INSTANCE.convertList(page.getRecords()), page.getTotal());
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<MemberUserEntity> getWrapper(MemberUserQuery query){
|
||||
LambdaQueryWrapper<MemberUserEntity> wrapper = Wrappers.lambdaQuery();
|
||||
|
||||
return wrapper;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void save(MemberUserVO vo) {
|
||||
MemberUserEntity entity = MemberUserConvert.INSTANCE.convert(vo);
|
||||
|
||||
baseMapper.insert(entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(MemberUserVO vo) {
|
||||
MemberUserEntity entity = MemberUserConvert.INSTANCE.convert(vo);
|
||||
|
||||
updateById(entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void delete(List<Long> idList) {
|
||||
removeByIds(idList);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,57 @@
|
|||
package net.maku.member.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import net.maku.framework.common.utils.DateUtils;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 会员管理
|
||||
*
|
||||
* @author 阿沐 babamu@126.com
|
||||
*/
|
||||
@Data
|
||||
@Schema(description = "会员管理")
|
||||
public class MemberUserVO implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Schema(description = "id")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "昵称")
|
||||
private String nickName;
|
||||
|
||||
@Schema(description = "手机号")
|
||||
private String mobile;
|
||||
|
||||
@Schema(description = "头像")
|
||||
private String avatar;
|
||||
|
||||
@Schema(description = "出生日期")
|
||||
@JsonFormat(pattern = DateUtils.DATE_PATTERN)
|
||||
private LocalDateTime birthday;
|
||||
|
||||
@Schema(description = "性别")
|
||||
private Integer gender;
|
||||
|
||||
@Schema(description = "最后登录IP")
|
||||
private String lastLoginIp;
|
||||
|
||||
@Schema(description = "最后登录时间")
|
||||
@JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
|
||||
private LocalDateTime lastLoginTime;
|
||||
|
||||
@Schema(description = "备注")
|
||||
private String remark;
|
||||
|
||||
@Schema(description = "状态")
|
||||
private Integer status;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user