Merge remote-tracking branch 'origin/wzj-main' into wzj-main
# Conflicts: # ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/controller/admin/VlogUploadController.java # ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IFansService.java # ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/FansServiceImpl.java
This commit is contained in:
commit
e78c6d2b0d
11
pom.xml
11
pom.xml
@ -59,6 +59,7 @@
|
||||
<flatten-maven-plugin.version>1.3.0</flatten-maven-plugin.version>
|
||||
<!-- 打包默认跳过测试 -->
|
||||
<skipTests>true</skipTests>
|
||||
<knife4j.version>3.03</knife4j.version>
|
||||
</properties>
|
||||
|
||||
<profiles>
|
||||
@ -429,6 +430,16 @@
|
||||
<version>1.6.2</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.github.xiaoymin</groupId>
|
||||
<artifactId>knife4j-springdoc-ui</artifactId>
|
||||
<version>3.0.3</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springdoc</groupId>
|
||||
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
|
||||
<version>${springdoc.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
|
||||
|
@ -92,7 +92,7 @@ spring:
|
||||
# 此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认30分钟
|
||||
maxLifetime: 1800000
|
||||
# 多久检查一次连接的活性
|
||||
keepaliveTime: 30000
|
||||
keepaliveTime: 300000
|
||||
|
||||
--- # redis 单机配置(单机与集群只能开启一个另一个需要注释掉)
|
||||
spring.data:
|
||||
|
@ -141,9 +141,11 @@ tenant:
|
||||
- ums_member
|
||||
- ums_member_address
|
||||
- ums_feedback
|
||||
- ums_member_account
|
||||
- ums_member_login_info
|
||||
- ums_member_cart
|
||||
- ums_cart
|
||||
- ums_account
|
||||
- ums_account_change_record
|
||||
- ums_fans
|
||||
- oms_aftersale
|
||||
- oms_aftersale_item
|
||||
- oms_order
|
||||
@ -158,6 +160,7 @@ tenant:
|
||||
- pms_sku
|
||||
- pms_sku_snapshot
|
||||
|
||||
|
||||
# MyBatisPlus配置
|
||||
# https://baomidou.com/config/
|
||||
mybatis-plus:
|
||||
@ -237,19 +240,21 @@ springdoc:
|
||||
name: ${sa-token.token-name}
|
||||
#这里定义了两个分组,可定义多个,也可以不定义
|
||||
group-configs:
|
||||
- group: 1.演示模块
|
||||
packages-to-scan: org.dromara.demo
|
||||
- group: 2.通用模块
|
||||
packages-to-scan: org.dromara.web
|
||||
- group: 3.系统模块
|
||||
packages-to-scan: org.dromara.system
|
||||
- group: 4.代码生成模块
|
||||
packages-to-scan: org.dromara.generator
|
||||
- group: 5.工作流模块
|
||||
packages-to-scan: org.dromara.workflow
|
||||
- group: 6.内容模块
|
||||
- group: 1.会员模块
|
||||
packages-to-scan: com.wzj.soopin.member
|
||||
- group: 2.订单模块
|
||||
packages-to-scan: com.wzj.soopin.order
|
||||
- group: 3.商品模块
|
||||
packages-to-scan: com.wzj.soopin.goods
|
||||
- group: 4.内容模块
|
||||
packages-to-scan: com.wzj.soopin.content
|
||||
|
||||
- group: 5.结算模块
|
||||
packages-to-scan: com.wzj.soopin.pay
|
||||
- group: 6.IM模块
|
||||
packages-to-scan: com.wzj.soopin.im
|
||||
- group: 7.系统模块
|
||||
packages-to-scan: org.dromara.system
|
||||
legacy-mode: true
|
||||
# 防止XSS攻击
|
||||
xss:
|
||||
# 过滤开关
|
||||
|
@ -32,6 +32,17 @@ public interface CacheConstants {
|
||||
*/
|
||||
String MEMEBER="MEMEBER:";
|
||||
|
||||
/**
|
||||
* 粉丝
|
||||
*/
|
||||
String MEMBER_FANS="MEMBER_FANS:";
|
||||
|
||||
/**
|
||||
* 关注
|
||||
*/
|
||||
String MEMBER_FOLLOW="MEMBER_FOLLOW:";
|
||||
|
||||
|
||||
String BLACK_LIST="BLACK_LIST:";
|
||||
|
||||
}
|
||||
|
@ -3,12 +3,26 @@ package org.dromara.common.core.domain;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import lombok.Data;
|
||||
import org.dromara.common.core.domain.model.BaseAudit;
|
||||
|
||||
import java.sql.Wrapper;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@Data
|
||||
public class BaseBO <T> {
|
||||
|
||||
|
||||
|
||||
protected LocalDateTime beginTime;
|
||||
|
||||
protected LocalDateTime endTime;
|
||||
|
||||
|
||||
protected Map<String,String> orderBy = new HashMap<>();
|
||||
|
||||
/**
|
||||
* bo转换成queryWrapper
|
||||
*
|
||||
|
@ -26,6 +26,7 @@
|
||||
<artifactId>springdoc-openapi-starter-webmvc-api</artifactId>
|
||||
</dependency>
|
||||
|
||||
|
||||
<dependency>
|
||||
<groupId>com.github.therapi</groupId>
|
||||
<artifactId>therapi-runtime-javadoc</artifactId>
|
||||
@ -36,6 +37,34 @@
|
||||
<artifactId>jackson-module-kotlin</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- Swagger 2.0 注解兼容包 -->
|
||||
<dependency>
|
||||
<groupId>io.swagger.core.v3</groupId>
|
||||
<artifactId>swagger-annotations</artifactId>
|
||||
<version>2.2.15</version> <!-- 与 SpringDoc 版本匹配 -->
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.swagger.core.v3</groupId>
|
||||
<artifactId>swagger-models</artifactId>
|
||||
<version>2.2.15</version> <!-- 与 SpringDoc 版本匹配 -->
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>io.swagger</groupId>
|
||||
<artifactId>swagger-annotations</artifactId>
|
||||
<version>1.6.2</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springdoc</groupId>
|
||||
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.github.xiaoymin</groupId>
|
||||
<artifactId>knife4j-springdoc-ui</artifactId>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
|
@ -228,4 +228,6 @@ public class RedisCache
|
||||
{
|
||||
return redisTemplate.keys(pattern);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -55,7 +55,7 @@ public class SecurityConfig implements WebMvcConfigurer {
|
||||
HttpServletRequest request = ServletUtils.getRequest();
|
||||
// 检查是否登录 是否有token
|
||||
try {
|
||||
StpUtil.checkLogin();
|
||||
// StpUtil.checkLogin();
|
||||
} catch (NotLoginException e) {
|
||||
if (request.getRequestURI().contains("sse")) {
|
||||
throw new SseException(e.getMessage(), e.getCode());
|
||||
|
@ -20,10 +20,10 @@
|
||||
<version>2.4</version>
|
||||
<classifier>jdk15</classifier>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-data-mongodb</artifactId>
|
||||
</dependency>
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>org.springframework.boot</groupId>-->
|
||||
<!-- <artifactId>spring-boot-starter-data-mongodb</artifactId>-->
|
||||
<!-- </dependency>-->
|
||||
<dependency>
|
||||
<groupId>io.minio</groupId>
|
||||
<artifactId>minio</artifactId>
|
||||
@ -155,12 +155,7 @@
|
||||
<artifactId>okhttp</artifactId>
|
||||
<version>4.12.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.swagger</groupId>
|
||||
<artifactId>swagger-annotations</artifactId>
|
||||
<version>1.6.2</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.amqp</groupId>
|
||||
<artifactId>spring-rabbit</artifactId>
|
||||
|
@ -169,7 +169,7 @@ public class VlogServiceImpl extends BaseInfoProperties implements VlogService {
|
||||
BeanUtils.copyProperties(v, vo);
|
||||
|
||||
if (StringUtils.isNotBlank(userId)) {
|
||||
vo.setDoIFollowVloger(fansService.queryDoIFollowVloger(userId, v.getVlogerId()));
|
||||
vo.setDoIFollowVloger(fansService.queryDoIFollowVloger(Long.valueOf(userId), Long.valueOf(v.getVlogerId())));
|
||||
vo.setDoILikeThisVlog(doILikeVlog(userId, v.getId()));
|
||||
}
|
||||
|
||||
|
@ -97,12 +97,6 @@
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-sse</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.swagger</groupId>
|
||||
<artifactId>swagger-annotations</artifactId>
|
||||
<version>1.6.2</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
|
||||
|
||||
</dependencies>
|
||||
|
@ -97,17 +97,7 @@
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-sse</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.swagger</groupId>
|
||||
<artifactId>swagger-annotations</artifactId>
|
||||
<version>1.6.2</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>com.github.pagehelper</groupId>-->
|
||||
<!-- <artifactId>pagehelper-spring-boot-starter</artifactId>-->
|
||||
<!-- <version>1.4.6</version>-->
|
||||
<!-- </dependency>-->
|
||||
|
||||
</dependencies>
|
||||
</project>
|
||||
|
@ -98,18 +98,6 @@
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-sse</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.github.xiaoymin</groupId>
|
||||
<artifactId>knife4j-spring-boot-starter</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.github.xiaoymin</groupId>
|
||||
<artifactId>knife4j-springdoc-ui</artifactId>
|
||||
</dependency>
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>org.dromara</groupId>-->
|
||||
<!-- <artifactId>ruoyi-goods</artifactId>-->
|
||||
<!-- </dependency>-->
|
||||
|
||||
|
||||
</dependencies>
|
||||
|
@ -1,282 +1,150 @@
|
||||
package com.wzj.soopin.member.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.wzj.soopin.member.domain.po.Member;
|
||||
import com.wzj.soopin.member.domain.po.MemberBlock;
|
||||
import com.wzj.soopin.member.service.IFansService;
|
||||
import com.wzj.soopin.member.service.IMemberBlockService;
|
||||
import com.wzj.soopin.member.service.IMemberService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.dromara.common.core.constant.CacheConstants;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.redis.utils.RedisUtils;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Slf4j
|
||||
@RequestMapping("/ums/fans")
|
||||
@RequestMapping("/ums/fans/")
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
public class FansController {
|
||||
public class FansController {
|
||||
|
||||
|
||||
private final IMemberService memberService;
|
||||
private final IFansService fansService;
|
||||
|
||||
// @PostMapping("follow")
|
||||
// public R<IPage<FansVO>> follow(@RequestParam String myId,
|
||||
// @RequestParam String vlogerId) {
|
||||
// // 从redis中获取拉黑信息
|
||||
// String redisKey = BaseInfoProperties.REDIS_USER_BLOCK + ":" + myId;
|
||||
// Boolean hasKey = redis.keyIsExist(redisKey);
|
||||
// if(hasKey){
|
||||
// List<String> blockUserList = new ArrayList<>();
|
||||
// ObjectMapper objectMapper = new ObjectMapper();
|
||||
// List<String> reports = redis.lrange(redisKey, 0, -1); // 查询用户的所有举报记录
|
||||
|
||||
private final IMemberBlockService memberBlockService;
|
||||
|
||||
@PostMapping("follow")
|
||||
public R<Object> follow(@RequestParam Long myId,
|
||||
@RequestParam Long vloggerId) {
|
||||
|
||||
|
||||
// 判断两个id不能为空
|
||||
if (myId ==null|| vloggerId==null) {
|
||||
return R.fail("id不能为空");
|
||||
}
|
||||
|
||||
|
||||
// 获取拉黑数据
|
||||
boolean hasblock = memberBlockService.hasBlocked(myId, vloggerId);
|
||||
if (hasblock) {
|
||||
return R.fail("已经拉黑");
|
||||
}
|
||||
|
||||
|
||||
// 判断当前用户,自己不能关注自己
|
||||
if (myId ==vloggerId) {
|
||||
return R.fail("自己不能关注自己");
|
||||
}
|
||||
|
||||
// 是否已经存在关系
|
||||
boolean flow = fansService.queryDoIFollowVloger(myId, vloggerId);
|
||||
if (flow) {
|
||||
return R.fail("已经在关注列表里了");
|
||||
}
|
||||
|
||||
// 判断两个id对应的用户是否存在
|
||||
Member vlogger = memberService.getById(vloggerId);
|
||||
Member myInfo = memberService.getById(myId);
|
||||
if (myInfo == null || vlogger == null) {
|
||||
return R.fail("用户不存在");
|
||||
}
|
||||
//
|
||||
// for (String report : reports) {
|
||||
// try {
|
||||
// Map<String, Object> reportMap = objectMapper.readValue(report, new TypeReference<Map<String, Object>>() {});
|
||||
// // 处理拉黑信息
|
||||
// String queryvlogerId = (String) reportMap.get("vlogerId");
|
||||
// blockUserList.add(queryvlogerId);
|
||||
// } catch (JsonProcessingException e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// }
|
||||
// System.out.println(blockUserList);
|
||||
// Boolean isBlock = blockUserList.contains(vlogerId);
|
||||
// if(isBlock){
|
||||
// return GraceJSONResult.errorCustom(ResponseStatusEnum.ON_BLOCK);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// // 判断两个id不能为空
|
||||
// if (StringUtils.isBlank(myId) || StringUtils.isBlank(vlogerId)) {
|
||||
// return GraceJSONResult.errorCustom(ResponseStatusEnum.SYSTEM_ERROR);
|
||||
// }
|
||||
//
|
||||
// // 判断当前用户,自己不能关注自己
|
||||
// if (myId.equalsIgnoreCase(vlogerId)) {
|
||||
// return GraceJSONResult.errorCustom(ResponseStatusEnum.SYSTEM_RESPONSE_NO_INFO);
|
||||
// }
|
||||
//
|
||||
// // 是否已经存在关系
|
||||
// Boolean flow = fansService.queryDoIFollowVloger(myId,vlogerId);
|
||||
// if(flow){
|
||||
// return GraceJSONResult.errorCustom(ResponseStatusEnum.FANS_INFO_UPDATED_ISFAN_EXIST_ERROR);
|
||||
// }
|
||||
//
|
||||
// // 判断两个id对应的用户是否存在
|
||||
// Users vloger = userService.getUser(vlogerId);
|
||||
// Users myInfo = userService.getUser(myId);
|
||||
//
|
||||
// // fixme: 两个用户id的数据库查询后的判断,是分开好?还是合并判断好?
|
||||
// if (myInfo == null || vloger == null) {
|
||||
// return GraceJSONResult.errorCustom(ResponseStatusEnum.SYSTEM_RESPONSE_NO_INFO);
|
||||
// }
|
||||
////
|
||||
// // 保存粉丝关系到数据库
|
||||
// fansService.doFollow(myId, vlogerId);
|
||||
//
|
||||
// // 博主的粉丝+1,我的关注+1
|
||||
// redis.increment(BaseInfoProperties.REDIS_MY_FOLLOWS_COUNTS + ":" + myId, 1);
|
||||
// redis.increment(BaseInfoProperties.REDIS_MY_FANS_COUNTS + ":" + vlogerId, 1);
|
||||
//
|
||||
// // 我和博主的关联关系,依赖redis,不要存储数据库,避免db的性能瓶颈
|
||||
// redis.set(BaseInfoProperties.REDIS_FANS_AND_VLOGGER_RELATIONSHIP + ":" + myId + ":" + vlogerId, "1");
|
||||
////
|
||||
// return GraceJSONResult.ok();
|
||||
// }
|
||||
//
|
||||
//// @PostMapping("cancel")
|
||||
//// public GraceJSONResult cancel(@RequestParam String myId,
|
||||
//// @RequestParam String vlogerId) {
|
||||
//// // 判断两个id不能为空
|
||||
//// if (StringUtils.isBlank(myId) || StringUtils.isBlank(vlogerId)) {
|
||||
//// return GraceJSONResult.errorCustom(ResponseStatusEnum.SYSTEM_ERROR);
|
||||
//// }
|
||||
//// // 是否已经存在关系
|
||||
//// Boolean flow = fansService.queryDoIFollowVloger(myId,vlogerId);
|
||||
//// if(!flow){
|
||||
//// return GraceJSONResult.errorCustom(ResponseStatusEnum.FANS_INFO_UPDATED_ISFLOW_EXIST_ERROR);
|
||||
//// }
|
||||
//// // 删除业务的执行
|
||||
//// fansService.doCancel(myId, vlogerId);
|
||||
////
|
||||
//// // 博主的粉丝-1,我的关注-1
|
||||
//// redis.decrement(BaseInfoProperties.REDIS_MY_FOLLOWS_COUNTS + ":" + myId, 1);
|
||||
//// redis.decrement(BaseInfoProperties.REDIS_MY_FANS_COUNTS + ":" + vlogerId, 1);
|
||||
////
|
||||
//// // 我和博主的关联关系,依赖redis,不要存储数据库,避免db的性能瓶颈
|
||||
//// redis.del(BaseInfoProperties.REDIS_FANS_AND_VLOGGER_RELATIONSHIP + ":" + myId + ":" + vlogerId);
|
||||
////
|
||||
//// return GraceJSONResult.ok();
|
||||
//// }
|
||||
//
|
||||
// @GetMapping("queryBlockVloger")
|
||||
// public GraceJSONResult queryBlockVloger(@RequestParam String myId,
|
||||
// @RequestParam String vlogerId) {
|
||||
// // 从redis中获取拉黑信息
|
||||
// String redisKey = BaseInfoProperties.REDIS_USER_BLOCK + ":" + myId;
|
||||
// Boolean hasKey = redis.keyIsExist(redisKey);
|
||||
// if(hasKey){
|
||||
// List<String> blockUserList = new ArrayList<>();
|
||||
// ObjectMapper objectMapper = new ObjectMapper();
|
||||
// List<String> reports = redis.lrange(redisKey, 0, -1); // 查询用户的所有举报记录
|
||||
//
|
||||
// for (String report : reports) {
|
||||
// try {
|
||||
// Map<String, Object> reportMap = objectMapper.readValue(report, new TypeReference<Map<String, Object>>() {});
|
||||
// // 处理拉黑信息
|
||||
// String queryvlogerId = (String) reportMap.get("vlogerId");
|
||||
// blockUserList.add(queryvlogerId);
|
||||
// } catch (JsonProcessingException e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// }
|
||||
// System.out.println(blockUserList);
|
||||
// return GraceJSONResult.ok(blockUserList.contains(vlogerId));
|
||||
// }else{
|
||||
// return GraceJSONResult.ok(false);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// @PostMapping("block")
|
||||
// public GraceJSONResult block(@RequestParam String myId,
|
||||
// @RequestParam String vlogerId) {
|
||||
// // 先执行cancel
|
||||
// // 判断两个id不能为空
|
||||
// if (StringUtils.isBlank(myId) || StringUtils.isBlank(vlogerId)) {
|
||||
// return GraceJSONResult.errorCustom(ResponseStatusEnum.SYSTEM_ERROR);
|
||||
// }
|
||||
// // 是否已经存在关系
|
||||
// Boolean flow = fansService.queryDoIFollowVloger(myId,vlogerId);
|
||||
// if(flow){
|
||||
// // 删除业务的执行
|
||||
// fansService.doCancel(myId, vlogerId);
|
||||
//
|
||||
// // 博主的粉丝-1,我的关注-1
|
||||
// redis.decrement(BaseInfoProperties.REDIS_MY_FOLLOWS_COUNTS + ":" + myId, 1);
|
||||
// redis.decrement(BaseInfoProperties.REDIS_MY_FANS_COUNTS + ":" + vlogerId, 1);
|
||||
//
|
||||
// // 我和博主的关联关系,依赖redis,不要存储数据库,避免db的性能瓶颈
|
||||
// redis.del(BaseInfoProperties.REDIS_FANS_AND_VLOGGER_RELATIONSHIP + ":" + myId + ":" + vlogerId);
|
||||
// }
|
||||
// // 拉黑
|
||||
// DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
// String blockTime = LocalDateTime.now().format(formatter);
|
||||
// try{
|
||||
// Map<String, String> blockInfo = new HashMap<>();
|
||||
// blockInfo.put("vlogerId", vlogerId);
|
||||
// blockInfo.put("myId", myId);
|
||||
// blockInfo.put("time", blockTime);
|
||||
// // 转成 JSON 字符串
|
||||
// ObjectMapper objectMapper = new ObjectMapper();
|
||||
// String blockJson = objectMapper.writeValueAsString(blockInfo);
|
||||
// String redisKey = BaseInfoProperties.REDIS_USER_BLOCK + ":" + myId ;
|
||||
// log.info("写入Redis => key: {}, value: {}", redisKey, blockJson);
|
||||
// redis.rpush(redisKey , blockJson);
|
||||
//
|
||||
// return GraceJSONResult.ok();
|
||||
// }catch (JsonProcessingException e){
|
||||
// // 打日志,或者抛出业务异常
|
||||
// e.printStackTrace();
|
||||
// throw new RuntimeException("JSON序列化失败: " + e.getMessage());
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// @PostMapping("cancelBlock")
|
||||
// public GraceJSONResult cancelBlock(@RequestParam String myId,
|
||||
// @RequestParam String vlogerId) {
|
||||
// // 判断两个id不能为空
|
||||
// if (StringUtils.isBlank(myId) || StringUtils.isBlank(vlogerId)) {
|
||||
// return GraceJSONResult.errorCustom(ResponseStatusEnum.SYSTEM_ERROR);
|
||||
// }
|
||||
// // 解除拉黑
|
||||
// String redisKey = BaseInfoProperties.REDIS_USER_BLOCK + ":" + myId;
|
||||
// Boolean hasKey = redis.keyIsExist(redisKey);
|
||||
// if(hasKey){
|
||||
// List<String> blockList = redis.lrange(redisKey, 0, -1);
|
||||
// ObjectMapper objectMapper = new ObjectMapper();
|
||||
// if (blockList != null && !blockList.isEmpty()) {
|
||||
// for (String item : blockList) {
|
||||
// try {
|
||||
// Map<String, String> itemMap = objectMapper.readValue(item, new TypeReference<Map<String, String>>() {});
|
||||
// String storedVlogerId = itemMap.get("vlogerId");
|
||||
//
|
||||
// if (storedVlogerId != null && storedVlogerId.equals(vlogerId)) {
|
||||
// redis.lrem(redisKey, 1, item); // 删除找到的 JSON 字符串
|
||||
// break;
|
||||
// }
|
||||
// }catch (JsonProcessingException e){
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// return GraceJSONResult.ok();
|
||||
// }else{
|
||||
// return GraceJSONResult.error();
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// @PostMapping("blockVideo")
|
||||
// public GraceJSONResult blockVideo(@RequestParam String myId,
|
||||
// @RequestParam String vlogId,
|
||||
// @RequestParam String reason,
|
||||
// @RequestParam(defaultValue = "") String description) {
|
||||
// // 判断两个id不能为空
|
||||
// if (StringUtils.isBlank(myId) || StringUtils.isBlank(vlogId)) {
|
||||
// return GraceJSONResult.errorCustom(ResponseStatusEnum.SYSTEM_ERROR);
|
||||
// }
|
||||
// // 拉黑
|
||||
// DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
// String blockTime = LocalDateTime.now().format(formatter);
|
||||
// //
|
||||
// try{
|
||||
// Map<String, String> blockInfo = new HashMap<>();
|
||||
// blockInfo.put("vlogId", vlogId);
|
||||
// blockInfo.put("reporter", myId);
|
||||
// blockInfo.put("time", blockTime);
|
||||
// blockInfo.put("reason", reason);
|
||||
// blockInfo.put("description", description);
|
||||
// // 转成 JSON 字符串
|
||||
// ObjectMapper objectMapper = new ObjectMapper();
|
||||
// String blockJson = objectMapper.writeValueAsString(blockInfo);
|
||||
//
|
||||
// String redisKey = BaseInfoProperties.REDIS_VIDEO_BLOCK + ":" + myId ;
|
||||
// log.info("写入Redis => key: {}, value: {}", redisKey, blockJson);
|
||||
// redis.rpush(redisKey , blockJson);
|
||||
//
|
||||
// return GraceJSONResult.ok();
|
||||
// }catch (JsonProcessingException e){
|
||||
// // 打日志,或者抛出业务异常
|
||||
// e.printStackTrace();
|
||||
// throw new RuntimeException("JSON序列化失败: " + e.getMessage());
|
||||
// }
|
||||
// }
|
||||
//
|
||||
//
|
||||
//
|
||||
// @GetMapping("queryDoIFollowVloger")
|
||||
// public GraceJSONResult queryDoIFollowVloger(@RequestParam String myId,
|
||||
// @RequestParam String vlogerId) {
|
||||
// return GraceJSONResult.ok(fansService.queryDoIFollowVloger(myId, vlogerId));
|
||||
// }
|
||||
//
|
||||
// @GetMapping("queryMyFollows")
|
||||
// public GraceJSONResult queryMyFollows(@RequestParam String myId,
|
||||
// @RequestParam Integer page,
|
||||
// @RequestParam Integer pageSize) {
|
||||
// return GraceJSONResult.ok(
|
||||
// fansService.queryMyFollows(
|
||||
// myId,
|
||||
// page,
|
||||
// pageSize));
|
||||
// }
|
||||
//
|
||||
// @GetMapping("queryMyFans")
|
||||
// public GraceJSONResult queryMyFans(@RequestParam String myId,
|
||||
// @RequestParam Integer page,
|
||||
// @RequestParam Integer pageSize) {
|
||||
// return GraceJSONResult.ok(
|
||||
// fansService.queryMyFans(
|
||||
// myId,
|
||||
// page,
|
||||
// pageSize));
|
||||
// }
|
||||
// 保存粉丝关系到数据库
|
||||
fansService.doFollow(myId, vloggerId);
|
||||
|
||||
// 博主的粉丝+1,我的关注+1
|
||||
RedisUtils.incrAtomicValue(CacheConstants.MEMBER_FANS + ":" + vloggerId);
|
||||
RedisUtils.incrAtomicValue(CacheConstants.MEMBER_FOLLOW + ":" + myId);
|
||||
return R.ok("关注成功");
|
||||
}
|
||||
|
||||
@PostMapping("cancel")
|
||||
public R<Object> cancel(@RequestParam Long myId,
|
||||
@RequestParam Long vloggerId) {
|
||||
// 判断两个id不能为空
|
||||
if ( myId==null || vloggerId==null) {
|
||||
return R.fail("id不能为空");
|
||||
}
|
||||
// 是否已经存在关系
|
||||
boolean flow = fansService.queryDoIFollowVloger(myId, vloggerId);
|
||||
if (!flow) {
|
||||
return R.fail("没有关注信息");
|
||||
}
|
||||
// 删除业务的执行
|
||||
fansService.doCancel(myId, vloggerId);
|
||||
|
||||
// 博主的粉丝-1,我的关注-1
|
||||
RedisUtils.decrAtomicValue(CacheConstants.MEMBER_FANS + ":" + vloggerId);
|
||||
RedisUtils.decrAtomicValue(CacheConstants.MEMBER_FOLLOW + ":" + myId);
|
||||
|
||||
return R.ok("取消成功");
|
||||
}
|
||||
|
||||
@GetMapping("block/list")
|
||||
public R<List<MemberBlock>> queryBlockVloger(@RequestParam Long myId) {
|
||||
|
||||
return R.ok(memberBlockService.list(new LambdaQueryWrapper<MemberBlock>().eq(MemberBlock::getMemberId, myId)));
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加黑名单
|
||||
*
|
||||
* @param myId
|
||||
* @param vloggerId
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("block")
|
||||
public R block(@RequestParam Long myId,
|
||||
@RequestParam Long vloggerId) {
|
||||
// 先执行cancel
|
||||
// 判断两个id不能为空
|
||||
if (myId == null || vloggerId==null) {
|
||||
return R.ok("id不能为空");
|
||||
}
|
||||
// 是否已经存在关系
|
||||
boolean flow = fansService.queryDoIFollowVloger(myId, vloggerId);
|
||||
if (flow) {
|
||||
// 删除业务的执行
|
||||
fansService.doCancel(myId, vloggerId);
|
||||
|
||||
// 博主的粉丝-1,我的关注-1
|
||||
RedisUtils.decrAtomicValue(CacheConstants.MEMBER_FANS + ":" + vloggerId);
|
||||
RedisUtils.decrAtomicValue(CacheConstants.MEMBER_FOLLOW + ":" + myId);
|
||||
}
|
||||
// 拉黑
|
||||
|
||||
memberBlockService.addBlock(myId, vloggerId);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
@PostMapping("cancelBlock")
|
||||
public R cancelBlock(@RequestParam Long myId,
|
||||
@RequestParam Long vloggerId) {
|
||||
// 判断两个id不能为空
|
||||
if (myId==null||vloggerId==null) {
|
||||
R.fail("id不能为空");
|
||||
}
|
||||
memberBlockService.removeBlock(myId, vloggerId);
|
||||
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -1,26 +1,19 @@
|
||||
package com.wzj.soopin.member.controller;
|
||||
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.wzj.soopin.member.convert.FeedbackConvert;
|
||||
import com.wzj.soopin.member.convert.MemberAccountConvert;
|
||||
import com.wzj.soopin.member.domain.bo.FeedbackBO;
|
||||
import com.wzj.soopin.member.domain.po.Feedback;
|
||||
import com.wzj.soopin.member.domain.po.MemberAccount;
|
||||
import com.wzj.soopin.member.domain.vo.FeedbackVO;
|
||||
import com.wzj.soopin.member.domain.vo.MemberAccountVO;
|
||||
import com.wzj.soopin.member.service.IFeedbackService;
|
||||
import com.wzj.soopin.member.service.IMemberAccountService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@ -30,7 +23,7 @@ import org.springframework.web.bind.annotation.*;
|
||||
* @author zcc
|
||||
* @date 2024-02-26
|
||||
*/
|
||||
@Api(description ="意见反馈接口列表")
|
||||
@Tag(name ="意见反馈接口列表")
|
||||
@RestController
|
||||
@RequestMapping("/ums/feedback")
|
||||
@RequiredArgsConstructor
|
||||
@ -40,30 +33,35 @@ public class FeedbackController {
|
||||
private final FeedbackConvert convert;
|
||||
|
||||
|
||||
@ApiOperation("查询意见反馈列表")
|
||||
@Tag(name ="查询意见反馈列表")
|
||||
@PostMapping("/list")
|
||||
public R<IPage<FeedbackVO>> list(@RequestBody FeedbackBO query, Page page) {
|
||||
public R<IPage<FeedbackVO>> list(@RequestBody FeedbackBO query, @RequestBody Page page) {
|
||||
Page<Feedback> feedBackPage= service.page(page,query.toWrapper());
|
||||
return R.ok(convert.toVO( feedBackPage));
|
||||
}
|
||||
|
||||
|
||||
@ApiOperation("修改意见反馈备注信息")
|
||||
@Tag(name ="修改意见反馈备注信息")
|
||||
@Log(title = "意见反馈", businessType = BusinessType.UPDATE)
|
||||
@PostMapping("/update")
|
||||
public R editMark(@RequestBody FeedbackBO feedback) {
|
||||
return R.ok(service.save(convert.toPo(feedback)));
|
||||
}
|
||||
|
||||
@ApiOperation("修改意见反馈备注信息")
|
||||
@Tag(name ="修改意见反馈备注信息")
|
||||
@Log(title = "新增意见反馈", businessType = BusinessType.UPDATE)
|
||||
@PostMapping("/add")
|
||||
public R add(@RequestBody FeedbackBO feedback) {
|
||||
return R.ok(service.save(convert.toPo(feedback)));
|
||||
}
|
||||
|
||||
@Tag(name ="获取详细信息")
|
||||
@GetMapping(value = "/{id}")
|
||||
public R<FeedbackVO> getInfo(@PathVariable("id") Long id) {
|
||||
return R.ok( service.selectById(id));
|
||||
}
|
||||
|
||||
@ApiOperation(("修改状态"))
|
||||
@Tag(name =("修改状态"))
|
||||
@Log(title = "意见反馈", businessType = BusinessType.UPDATE)
|
||||
@PostMapping("/handle/status/update")
|
||||
public R changeStatus(@RequestBody FeedbackBO bo){
|
||||
@ -71,10 +69,10 @@ public class FeedbackController {
|
||||
}
|
||||
|
||||
|
||||
@ApiOperation("删除意见反馈")
|
||||
@Tag(name ="删除意见反馈")
|
||||
@Log(title = "意见反馈", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{id}")
|
||||
public ResponseEntity<Object> remove(@PathVariable Long id) {
|
||||
return ResponseEntity.ok(service.removeById(id));
|
||||
public R<Object> remove(@PathVariable Long id) {
|
||||
return R.ok(service.removeById(id));
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,100 @@
|
||||
package com.wzj.soopin.member.controller;
|
||||
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.wzj.soopin.member.convert.MemberAccountChangeRecordConvert;
|
||||
import com.wzj.soopin.member.convert.MemberConvert;
|
||||
import com.wzj.soopin.member.domain.bo.MemberAccountChangeRecordBO;
|
||||
import com.wzj.soopin.member.domain.bo.MemberBO;
|
||||
import com.wzj.soopin.member.domain.po.Member;
|
||||
import com.wzj.soopin.member.domain.po.MemberAccountChangeRecord;
|
||||
import com.wzj.soopin.member.domain.vo.MemberAccountChangeRecordVO;
|
||||
import com.wzj.soopin.member.domain.vo.MemberDataStatisticsVO;
|
||||
import com.wzj.soopin.member.domain.vo.MemberVO;
|
||||
import com.wzj.soopin.member.service.IMemberAccountChangeRecordService;
|
||||
import com.wzj.soopin.member.service.IMemberService;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 会员信息Controller
|
||||
*
|
||||
* @author zcc
|
||||
* @date 2022-11-28
|
||||
*/
|
||||
@Tag(name = "会员账户变动接口列表")
|
||||
@RequestMapping("/ums/account/change/record")
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
public class MemberAccountChangeRecordController extends BaseController {
|
||||
private final IMemberAccountChangeRecordService service;
|
||||
|
||||
private final MemberAccountChangeRecordConvert convert;
|
||||
|
||||
|
||||
@Tag(name = "查询账户变动列表")
|
||||
@SaCheckPermission("ums:accountchange:list")
|
||||
@PostMapping("list")
|
||||
public R<Page<MemberAccountChangeRecordVO>> list(@RequestBody MemberAccountChangeRecordBO bo,
|
||||
Page<MemberAccountChangeRecord> page) {
|
||||
Page<MemberAccountChangeRecord> memberPage = service.page(page,bo.toWrapper());
|
||||
return R.ok(convert.toVO(memberPage));
|
||||
}
|
||||
|
||||
@Tag(name ="导出变动记录")
|
||||
@SaCheckPermission("ums:accountchange:export")
|
||||
@Log(title = "会员信息", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("export")
|
||||
public ResponseEntity<String> export(MemberAccountChangeRecordBO query) {
|
||||
List<MemberAccountChangeRecord> list = service.list(query.toWrapper());
|
||||
ExcelUtil<MemberAccountChangeRecordVO> util = new ExcelUtil<>(MemberAccountChangeRecordVO.class);
|
||||
return ResponseEntity.ok(util.writeExcel(convert.toVO(list), "会员变动记录"));
|
||||
}
|
||||
|
||||
@Tag(name ="获取变动记录")
|
||||
@SaCheckPermission("ums:accountchange:query")
|
||||
@GetMapping(value = "{id}")
|
||||
public R<MemberAccountChangeRecordVO> getInfo(@PathVariable("id") Long id) {
|
||||
return R.ok(convert.toVO(service.getById(id)));
|
||||
}
|
||||
|
||||
@Tag(name ="新增变动记录")
|
||||
@SaCheckPermission("'ums:accountchange:add")
|
||||
@Log(title = "新增变动记录", businessType = BusinessType.INSERT)
|
||||
@PostMapping("add")
|
||||
public R add(@RequestBody MemberAccountChangeRecordBO member) {
|
||||
return R.ok(service.save(convert.toPo(member)));
|
||||
}
|
||||
|
||||
@Tag(name ="修改变动记录")
|
||||
@SaCheckPermission("ums:accountchange:edit")
|
||||
@Log(title = "修改变动记录", businessType = BusinessType.UPDATE)
|
||||
@PostMapping("update")
|
||||
public R edit(@RequestBody MemberAccountChangeRecordBO member) {
|
||||
return R.ok(service.updateById(convert.toPo(member)));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Tag(name ="删除变动记录")
|
||||
@SaCheckPermission("ums:accountchange:remove")
|
||||
@Log(title = "删除变动记录", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("{id}")
|
||||
public R remove(@PathVariable Long id) {
|
||||
return R.ok(service.removeById(id));
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -3,18 +3,16 @@ package com.wzj.soopin.member.controller;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.wzj.soopin.member.convert.MemberAccountConvert;
|
||||
import com.wzj.soopin.member.domain.po.MemberAccount;
|
||||
import com.wzj.soopin.member.domain.bo.MemberAccountBO;
|
||||
import com.wzj.soopin.member.domain.po.MemberAccount;
|
||||
import com.wzj.soopin.member.domain.vo.MemberAccountVO;
|
||||
import com.wzj.soopin.member.service.IMemberAccountService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@ -25,23 +23,23 @@ import java.util.List;
|
||||
* @author zcc
|
||||
* @date 2024-03-01
|
||||
*/
|
||||
@Api(description ="会员账户表接口列表")
|
||||
@Tag(name ="会员账户表接口列表")
|
||||
@RestController
|
||||
@RequestMapping("/ums/memberAccount")
|
||||
@RequestMapping("/ums/member/account")
|
||||
@RequiredArgsConstructor
|
||||
public class MemberAccountController {
|
||||
|
||||
private final IMemberAccountService service;
|
||||
private final MemberAccountConvert convert;
|
||||
|
||||
@ApiOperation("查询会员账户表列表")
|
||||
@Tag(name ="查询会员账户表列表")
|
||||
@PostMapping("/list")
|
||||
public R<IPage<MemberAccountVO>> list(@RequestBody MemberAccountBO query, IPage page) {
|
||||
Page<MemberAccount> list = (Page<MemberAccount>) service.page(page,query.toWrapper() );
|
||||
public R<IPage<MemberAccountVO>> list(@RequestBody MemberAccountBO query, Page page) {
|
||||
Page<MemberAccount> list = service.page(page,query.toWrapper() );
|
||||
return R.ok(convert.toVO(list));
|
||||
}
|
||||
|
||||
@ApiOperation("导出会员账户表列表")
|
||||
@Tag(name ="导出会员账户表列表")
|
||||
@Log(title = "会员账户表", businessType = BusinessType.EXPORT)
|
||||
@GetMapping("/export")
|
||||
public ResponseEntity<String> export(MemberAccountBO query) {
|
||||
@ -50,27 +48,27 @@ public class MemberAccountController {
|
||||
return ResponseEntity.ok(util.writeExcel(convert.toVO(list), "会员账户表数据"));
|
||||
}
|
||||
|
||||
@ApiOperation("获取会员账户表详细信息")
|
||||
@Tag(name ="获取会员账户表详细信息")
|
||||
@GetMapping(value = "/{memberId}")
|
||||
public ResponseEntity<MemberAccount> getInfo(@PathVariable("memberId") Long memberId) {
|
||||
return ResponseEntity.ok(service.getById(memberId));
|
||||
public ResponseEntity<MemberAccountVO> getInfo(@PathVariable("memberId") Long memberId) {
|
||||
return ResponseEntity.ok(convert.toVO(service.getById(memberId)));
|
||||
}
|
||||
|
||||
@ApiOperation("新增会员账户表")
|
||||
@Tag(name ="新增会员账户表")
|
||||
@Log(title = "会员账户表", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/add")
|
||||
public ResponseEntity<Object> add(@RequestBody MemberAccountBO memberAccount) {
|
||||
return ResponseEntity.ok(service.save(convert.toPo(memberAccount)));
|
||||
}
|
||||
|
||||
@ApiOperation("修改会员账户表")
|
||||
@Tag(name ="修改会员账户表")
|
||||
@Log(title = "会员账户表", businessType = BusinessType.UPDATE)
|
||||
@PutMapping("/update")
|
||||
public ResponseEntity<Object> edit(@RequestBody MemberAccountBO memberAccount) {
|
||||
return ResponseEntity.ok(service.updateById(convert.toPo(memberAccount)));
|
||||
}
|
||||
|
||||
@ApiOperation("删除会员账户表")
|
||||
@Tag(name ="删除会员账户表")
|
||||
|
||||
@Log(title = "会员账户表", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{memberId}")
|
||||
|
@ -4,20 +4,16 @@ package com.wzj.soopin.member.controller;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.wzj.soopin.member.convert.MemberAddressConvert;
|
||||
import com.wzj.soopin.member.domain.po.MemberAddress;
|
||||
import com.wzj.soopin.member.domain.bo.MemberAddressBO;
|
||||
import com.wzj.soopin.member.domain.po.MemberAddress;
|
||||
import com.wzj.soopin.member.domain.vo.MemberAddressVO;
|
||||
import com.wzj.soopin.member.service.IMemberAddressService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.domain.PageImpl;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@ -29,7 +25,7 @@ import java.util.List;
|
||||
* @author zcc
|
||||
* @date 2022-11-28
|
||||
*/
|
||||
@Api(description ="会员收货地址接口列表")
|
||||
@Tag(name ="会员收货地址接口列表")
|
||||
@RestController
|
||||
@RequestMapping("/ums/memberAddress")
|
||||
@RequiredArgsConstructor
|
||||
@ -39,14 +35,14 @@ public class MemberAddressController {
|
||||
|
||||
private final MemberAddressConvert convert;
|
||||
|
||||
@ApiOperation("查询会员收货地址列表")
|
||||
@Tag(name ="查询会员收货地址列表")
|
||||
@PostMapping("/list")
|
||||
public R list(@RequestBody MemberAddressBO query, IPage page) {
|
||||
Page<MemberAddress> list =(Page<MemberAddress> ) service.page(page,query.toWrapper());
|
||||
return R.ok(convert.toVO(list));
|
||||
}
|
||||
|
||||
@ApiOperation("导出会员收货地址列表")
|
||||
@Tag(name ="导出会员收货地址列表")
|
||||
@Log(title = "会员收货地址", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public ResponseEntity<String> export(MemberAddressBO query) {
|
||||
@ -55,20 +51,20 @@ public class MemberAddressController {
|
||||
return ResponseEntity.ok(util.writeExcel(convert.toVO(list), "会员收货地址数据"));
|
||||
}
|
||||
|
||||
@ApiOperation("获取会员收货地址详细信息")
|
||||
@Tag(name ="获取会员收货地址详细信息")
|
||||
@GetMapping(value = "/{id}")
|
||||
public ResponseEntity<MemberAddress> getInfo(@PathVariable("id") Long id) {
|
||||
return ResponseEntity.ok(service.getById(id));
|
||||
}
|
||||
|
||||
@ApiOperation("新增会员收货地址")
|
||||
@Tag(name ="新增会员收货地址")
|
||||
@Log(title = "会员收货地址", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/add")
|
||||
public ResponseEntity<Object> add(@RequestBody MemberAddress memberAddress) {
|
||||
return ResponseEntity.ok(service.save(memberAddress));
|
||||
}
|
||||
|
||||
@ApiOperation("修改会员收货地址")
|
||||
@Tag(name ="修改会员收货地址")
|
||||
@Log(title = "会员收货地址", businessType = BusinessType.UPDATE)
|
||||
@PostMapping("/update")
|
||||
public ResponseEntity edit(@RequestBody MemberAddress memberAddress) {
|
||||
@ -76,7 +72,7 @@ public class MemberAddressController {
|
||||
return ResponseEntity.ok(null);
|
||||
}
|
||||
|
||||
@ApiOperation("删除会员收货地址")
|
||||
@Tag(name ="删除会员收货地址")
|
||||
@Log(title = "会员收货地址", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{id}")
|
||||
public ResponseEntity<Object> remove(@PathVariable Long id) {
|
||||
|
@ -5,19 +5,16 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.wzj.soopin.member.convert.MemberCartConvert;
|
||||
import com.wzj.soopin.member.domain.po.MemberCart;
|
||||
import com.wzj.soopin.member.domain.bo.MemberCartBO;
|
||||
import com.wzj.soopin.member.domain.po.MemberCart;
|
||||
import com.wzj.soopin.member.domain.vo.MemberCartVO;
|
||||
import com.wzj.soopin.member.service.IMemberCartService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
/**
|
||||
@ -26,7 +23,7 @@ import org.springframework.web.bind.annotation.*;
|
||||
* @author zcc
|
||||
* @date 2022-11-29
|
||||
*/
|
||||
@Api(description ="购物车接口列表")
|
||||
@Tag(name = "购物车接口列表")
|
||||
@RestController
|
||||
@RequestMapping("/ums/memberCart")
|
||||
public class MemberCartController extends BaseController {
|
||||
@ -35,14 +32,14 @@ public class MemberCartController extends BaseController {
|
||||
@Autowired
|
||||
private MemberCartConvert convert;
|
||||
|
||||
@ApiOperation("查询购物车列表")
|
||||
@Tag(name = "查询购物车列表")
|
||||
@PostMapping("/list")
|
||||
public R<Page<MemberCartVO>> list(@RequestBody MemberCartBO query, IPage page) {
|
||||
Page<MemberCart> userPage=(Page<MemberCart>) service.page(page,new QueryWrapper<MemberCart>());
|
||||
Page<MemberCart> userPage = (Page<MemberCart>) service.page(page, new QueryWrapper<MemberCart>());
|
||||
return R.ok(convert.toVO(userPage));
|
||||
}
|
||||
|
||||
@ApiOperation("导出购物车列表")
|
||||
@Tag(name = "导出购物车列表")
|
||||
@Log(title = "购物车", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public R<String> export(MemberCartBO query) {
|
||||
@ -52,29 +49,29 @@ public class MemberCartController extends BaseController {
|
||||
return null;
|
||||
}
|
||||
|
||||
@ApiOperation("获取购物车详细信息")
|
||||
@Tag(name = "获取购物车详细信息")
|
||||
@GetMapping(value = "/{id}")
|
||||
public R<MemberCart> getInfo(@PathVariable("id") Long id) {
|
||||
return R.ok(service.getById(id));
|
||||
}
|
||||
|
||||
@ApiOperation("新增购物车")
|
||||
@Tag(name = "新增购物车")
|
||||
@Log(title = "购物车", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/add")
|
||||
public R add(@RequestBody MemberCartBO memberCart) {
|
||||
return R.ok(service.save(convert.toPo(memberCart)));
|
||||
}
|
||||
|
||||
@ApiOperation("修改购物车")
|
||||
@Tag(name = "修改购物车")
|
||||
@Log(title = "购物车", businessType = BusinessType.UPDATE)
|
||||
@PostMapping("/update")
|
||||
public R edit(@RequestBody MemberCartBO memberCart) {
|
||||
return R.ok(service.updateById(convert.toPo(memberCart)));
|
||||
}
|
||||
|
||||
@ApiOperation("删除购物车")
|
||||
@Tag(name = "删除购物车")
|
||||
@Log(title = "购物车", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{id}")
|
||||
@DeleteMapping("/{id}")
|
||||
public R remove(@PathVariable Long id) {
|
||||
return R.ok(service.removeById(id));
|
||||
}
|
||||
|
@ -2,7 +2,6 @@ package com.wzj.soopin.member.controller;
|
||||
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.wzj.soopin.member.convert.MemberConvert;
|
||||
import com.wzj.soopin.member.domain.bo.MemberBO;
|
||||
@ -11,8 +10,7 @@ import com.wzj.soopin.member.domain.po.Member;
|
||||
import com.wzj.soopin.member.domain.vo.MemberDataStatisticsVO;
|
||||
import com.wzj.soopin.member.domain.vo.MemberVO;
|
||||
import com.wzj.soopin.member.service.IMemberService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
@ -30,7 +28,7 @@ import java.util.List;
|
||||
* @author zcc
|
||||
* @date 2022-11-28
|
||||
*/
|
||||
@Api(description ="会员信息接口列表")
|
||||
@Tag(name = "会员信息接口列表")
|
||||
@RequestMapping("/ums/member/")
|
||||
@RestController
|
||||
public class MemberController extends BaseController {
|
||||
@ -40,7 +38,7 @@ public class MemberController extends BaseController {
|
||||
private MemberConvert convert;
|
||||
|
||||
|
||||
@ApiOperation("查询会员信息列表")
|
||||
@Tag(name = "查询会员信息列表")
|
||||
@SaCheckPermission("ums:member:list")
|
||||
@PostMapping("list")
|
||||
public R<Page<MemberVO>> list(@RequestBody MemberBO bo, Page<Member> page) {
|
||||
@ -49,7 +47,7 @@ public class MemberController extends BaseController {
|
||||
return R.ok(convert.toVO(memberPage));
|
||||
}
|
||||
|
||||
@ApiOperation("导出会员信息列表")
|
||||
@Tag(name ="导出会员信息列表")
|
||||
@SaCheckPermission("ums:member:export")
|
||||
@Log(title = "会员信息", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("export")
|
||||
@ -59,14 +57,14 @@ public class MemberController extends BaseController {
|
||||
return ResponseEntity.ok(util.writeExcel(convert.toVO(list), "会员信息数据"));
|
||||
}
|
||||
|
||||
@ApiOperation("获取会员信息详细信息")
|
||||
@Tag(name ="获取会员信息详细信息")
|
||||
@SaCheckPermission("ums:member:query")
|
||||
@GetMapping(value = "{id}")
|
||||
public ResponseEntity<MemberVO> getInfo(@PathVariable("id") Long id) {
|
||||
return ResponseEntity.ok(convert.toVO(service.getById(id)));
|
||||
}
|
||||
|
||||
@ApiOperation("新增会员信息")
|
||||
@Tag(name ="新增会员信息")
|
||||
@SaCheckPermission("'ums:member:add")
|
||||
@Log(title = "会员信息", businessType = BusinessType.INSERT)
|
||||
@PostMapping("add")
|
||||
@ -74,7 +72,7 @@ public class MemberController extends BaseController {
|
||||
return R.ok(service.save(convert.toPo(member)));
|
||||
}
|
||||
|
||||
@ApiOperation("修改会员信息")
|
||||
@Tag(name ="修改会员信息")
|
||||
@SaCheckPermission("ums:member:edit")
|
||||
@Log(title = "会员信息", businessType = BusinessType.UPDATE)
|
||||
@PostMapping("update")
|
||||
@ -82,15 +80,15 @@ public class MemberController extends BaseController {
|
||||
return R.ok(service.updateById(convert.toPo(member)));
|
||||
}
|
||||
|
||||
@ApiOperation("修改会员备注信息")
|
||||
@Tag(name ="修改会员备注信息")
|
||||
@SaCheckPermission("ums:member:edit")
|
||||
@Log(title = "会员备注信息", businessType = BusinessType.UPDATE)
|
||||
@PostMapping("mark/update")
|
||||
public ResponseEntity<Integer> editMark(@RequestBody Member member) {
|
||||
return ResponseEntity.ok(service.updateMark(member));
|
||||
public R<Integer> editMark(@RequestBody MemberBO member) {
|
||||
return R.ok(service.updateMark(member));
|
||||
}
|
||||
|
||||
@ApiOperation("删除会员信息")
|
||||
@Tag(name ="删除会员信息")
|
||||
@SaCheckPermission("ums:member:remove")
|
||||
@Log(title = "会员信息", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("{id}")
|
||||
@ -98,20 +96,20 @@ public class MemberController extends BaseController {
|
||||
return R.ok(service.removeById(id));
|
||||
}
|
||||
|
||||
@ApiOperation(("修改会员账户状态"))
|
||||
@Tag(name =("修改会员账户状态"))
|
||||
@Log(title = "会员信息", businessType = BusinessType.UPDATE)
|
||||
@PostMapping("status/change")
|
||||
public ResponseEntity<Integer> changeStatus(@RequestBody ChangeMemberStatusForm form){
|
||||
return ResponseEntity.ok(service.changeStatus(form));
|
||||
public R<Integer> changeStatus(@RequestBody MemberBO memberBO){
|
||||
return R.ok(service.changeStatus(memberBO));
|
||||
}
|
||||
|
||||
@ApiOperation("会员手机号解密")
|
||||
@Tag(name ="会员手机号解密")
|
||||
@GetMapping("phone/decrypt/{phoneEncrypted}")
|
||||
public ResponseEntity<String> getPhoneDecrypted(@PathVariable String phoneEncrypted){
|
||||
return ResponseEntity.ok(service.getPhoneDecrypted(phoneEncrypted));
|
||||
}
|
||||
|
||||
@ApiOperation("查看会员统计数据")
|
||||
@Tag(name ="查看会员统计数据")
|
||||
@GetMapping("view/statistics/{memberId}")
|
||||
public ResponseEntity<MemberDataStatisticsVO> viewStatistics(@PathVariable Long memberId){
|
||||
// return ResponseEntity.ok(service.viewStatistics(memberId));
|
||||
|
@ -8,8 +8,7 @@ import com.wzj.soopin.member.domain.bo.MemberLoginInfoBO;
|
||||
import com.wzj.soopin.member.domain.po.MemberLoginInfo;
|
||||
import com.wzj.soopin.member.domain.vo.MemberLoginInfoVO;
|
||||
import com.wzj.soopin.member.service.IMemberLoginInfoService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
@ -26,7 +25,7 @@ import java.util.List;
|
||||
* @author zcc
|
||||
* @date 2023-07-26
|
||||
*/
|
||||
@Api(description ="会员登录记录接口列表")
|
||||
@Tag(name ="会员登录记录接口列表")
|
||||
@RestController
|
||||
@RequestMapping("/ums/member/loginInfo/")
|
||||
@RequiredArgsConstructor
|
||||
@ -34,7 +33,7 @@ public class MemberLoginInfoController extends BaseController {
|
||||
private final IMemberLoginInfoService service;
|
||||
private final MemberLoginInfoConvert convert;
|
||||
|
||||
@ApiOperation("查询会员登录记录列表")
|
||||
@Tag(name ="查询会员登录记录列表")
|
||||
@SaCheckPermission("ums:memberlogininfo:list")
|
||||
@PostMapping("list")
|
||||
public R<Page<MemberLoginInfoVO>> list(@RequestBody MemberLoginInfoBO query, Page page) {
|
||||
@ -42,7 +41,7 @@ public class MemberLoginInfoController extends BaseController {
|
||||
return R.ok(convert.toVO(list));
|
||||
}
|
||||
|
||||
@ApiOperation("导出会员登录记录列表")
|
||||
@Tag(name ="导出会员登录记录列表")
|
||||
@SaCheckPermission("ums:memberlogininfo:export")
|
||||
@Log(title = "会员登录记录", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("export")
|
||||
@ -52,14 +51,23 @@ public class MemberLoginInfoController extends BaseController {
|
||||
return R.ok(util.writeExcel(convert.toVO(list), "会员登录记录数据"));
|
||||
}
|
||||
|
||||
@ApiOperation("获取会员登录记录详细信息")
|
||||
|
||||
@Tag(name ="导出会员登录记录列表")
|
||||
@SaCheckPermission("ums:memberlogininfo:export")
|
||||
@Log(title = "会员登录记录", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("add")
|
||||
public R<Boolean> add(@RequestBody MemberLoginInfoBO bo) {
|
||||
return R.ok(service.save(convert.toPo(bo)));
|
||||
}
|
||||
|
||||
@Tag(name ="获取会员登录记录详细信息")
|
||||
@SaCheckPermission("ums:memberlogininfo:query")
|
||||
@GetMapping(value = "{id}")
|
||||
public R<MemberLoginInfoVO> getInfo(@PathVariable("id") Long id) {
|
||||
return R.ok(convert.toVO(service.getById(id)));
|
||||
}
|
||||
|
||||
@ApiOperation("修改会员登录记录")
|
||||
@Tag(name ="修改会员登录记录")
|
||||
@SaCheckPermission("ums:memberlogininfo:edit")
|
||||
@Log(title = "会员登录记录", businessType = BusinessType.UPDATE)
|
||||
@PostMapping("/update")
|
||||
@ -67,7 +75,7 @@ public class MemberLoginInfoController extends BaseController {
|
||||
return R.ok(service.updateById(convert.toPo(memberLoginInfo)));
|
||||
}
|
||||
|
||||
@ApiOperation("删除会员登录记录")
|
||||
@Tag(name ="删除会员登录记录")
|
||||
@SaCheckPermission("ums:memberlogininfo:remove")
|
||||
@Log(title = "会员登录记录", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("{id}")
|
||||
|
@ -0,0 +1,20 @@
|
||||
package com.wzj.soopin.member.convert;
|
||||
|
||||
import com.wzj.soopin.member.domain.bo.MemberAccountBO;
|
||||
import com.wzj.soopin.member.domain.bo.MemberAccountChangeRecordBO;
|
||||
import com.wzj.soopin.member.domain.po.MemberAccount;
|
||||
import com.wzj.soopin.member.domain.po.MemberAccountChangeRecord;
|
||||
import com.wzj.soopin.member.domain.vo.MemberAccountChangeRecordVO;
|
||||
import com.wzj.soopin.member.domain.vo.MemberAccountVO;
|
||||
import org.dromara.common.web.core.BaseConverter;
|
||||
import org.mapstruct.Mapper;
|
||||
|
||||
/**
|
||||
* 会员账户表 DO <=> DTO <=> VO / BO / Query
|
||||
*
|
||||
* @author zcc
|
||||
*/
|
||||
@Mapper(componentModel = "spring",uses = BaseConverter.class)
|
||||
public interface MemberAccountChangeRecordConvert extends BaseConverter<MemberAccountChangeRecordVO, MemberAccountChangeRecordBO, MemberAccountChangeRecord> {
|
||||
|
||||
}
|
@ -1,10 +1,11 @@
|
||||
package com.wzj.soopin.member.domain.bo;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.wzj.soopin.member.domain.po.Feedback;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import org.apache.poi.ss.formula.functions.T;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.dromara.common.core.domain.BaseBO;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
@ -14,34 +15,76 @@ import java.time.LocalDateTime;
|
||||
*
|
||||
* @author zcc
|
||||
*/
|
||||
@ApiModel(description="意见反馈 查询 对象")
|
||||
@Schema(description = "意见反馈 查询 对象")
|
||||
@Data
|
||||
public class FeedbackBO extends BaseBO {
|
||||
@ApiModelProperty("类型 精确匹配")
|
||||
private String type;
|
||||
@Schema(description ="ID")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("具体说明 精确匹配")
|
||||
@Schema(description ="类型")
|
||||
private Integer type;
|
||||
|
||||
@Schema(description ="具体说明")
|
||||
private String content;
|
||||
|
||||
@ApiModelProperty("图片 精确匹配")
|
||||
@Schema(description ="图片")
|
||||
private String images;
|
||||
|
||||
@ApiModelProperty("联系电话 精确匹配")
|
||||
@Schema(description ="联系电话")
|
||||
private String phone;
|
||||
|
||||
@ApiModelProperty("处理状态 0:未处理 1:已处理 精确匹配")
|
||||
private Integer handleStatus;
|
||||
@Schema(description ="处理状态 0:未处理 1:已处理")
|
||||
private Integer status;
|
||||
|
||||
@ApiModelProperty("处理时间 精确匹配")
|
||||
@Schema(description ="备注")
|
||||
private String remark;
|
||||
|
||||
@Schema(description ="处理时间")
|
||||
private LocalDateTime handleTime;
|
||||
|
||||
private String beginTime;
|
||||
|
||||
private String endTime;
|
||||
|
||||
@Schema(description ="反馈对象ID")
|
||||
private Long aimId;
|
||||
|
||||
@Schema(description ="反馈分类")
|
||||
private Integer category;
|
||||
|
||||
@Schema(description ="会员ID")
|
||||
private String memberId;
|
||||
|
||||
@Schema(description ="处理人")
|
||||
private Long handlerId;
|
||||
|
||||
@Schema(description ="处理结果类型 0:文本 1:图片")
|
||||
private Integer resultType;
|
||||
|
||||
@Schema(description ="处理结果")
|
||||
private String resultContent;
|
||||
|
||||
@Schema(description ="反馈对象类型")
|
||||
private String aimType;
|
||||
|
||||
@Override
|
||||
public LambdaQueryWrapper toWrapper() {
|
||||
return super.toWrapper();
|
||||
return new LambdaQueryWrapper<Feedback>()
|
||||
.eq(type!=null,Feedback::getType, type)
|
||||
.eq(content!=null,Feedback::getContent, content)
|
||||
.eq(images!=null,Feedback::getImages, images)
|
||||
.eq(phone!=null,Feedback::getPhone, phone)
|
||||
.eq(status!=null,Feedback::getStatus, status)
|
||||
.eq(remark!=null,Feedback::getRemark, remark)
|
||||
.eq(handleTime!=null,Feedback::getHandleTime, handleTime)
|
||||
.eq(aimId!=null,Feedback::getAimId, aimId)
|
||||
.eq(category!=null,Feedback::getCategory, category)
|
||||
.eq(memberId!=null,Feedback::getMemberId, memberId)
|
||||
.eq(handlerId!=null,Feedback::getHandlerId, handlerId)
|
||||
.eq(resultType!=null,Feedback::getResultType, resultType)
|
||||
.eq(resultContent!=null,Feedback::getResultContent, resultContent)
|
||||
.ge(beginTime!=null,Feedback::getCreateTime, beginTime)
|
||||
.lt(endTime!=null,Feedback::getCreateTime, endTime)
|
||||
.eq(aimType!=null,Feedback::getAimType, aimType)
|
||||
.orderByDesc(Feedback::getId)
|
||||
;
|
||||
}
|
||||
}
|
||||
|
@ -4,10 +4,10 @@ import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.wzj.soopin.member.domain.po.MemberAccount;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import org.dromara.common.core.domain.BaseBO;
|
||||
import org.dromara.common.excel.annotation.Excel;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@ -16,25 +16,36 @@ import java.math.BigDecimal;
|
||||
*
|
||||
* @author zcc
|
||||
*/
|
||||
@ApiModel(description="会员账户表 查询 对象")
|
||||
@Schema(description="会员账户表 查询 对象")
|
||||
@Data
|
||||
public class MemberAccountBO extends BaseBO {
|
||||
@ApiModelProperty("积分余额 精确匹配")
|
||||
@Schema(description ="积分余额 精确匹配")
|
||||
private BigDecimal integralBalance;
|
||||
|
||||
@ApiModelProperty("历史总共积分 精确匹配")
|
||||
@Schema(description ="历史总共积分 精确匹配")
|
||||
private BigDecimal totalIntegralBalance;
|
||||
|
||||
|
||||
@ApiModelProperty("MEMBER_ID")
|
||||
@TableId(value="member_id", type = IdType.ASSIGN_ID)
|
||||
@Schema(description ="MEMBER_ID")
|
||||
private Long memberId;
|
||||
|
||||
|
||||
@Schema(description ="钱包")
|
||||
private BigDecimal wallet;
|
||||
|
||||
@Schema(description ="营收")
|
||||
private BigDecimal revenue;
|
||||
|
||||
|
||||
|
||||
@Schema(description ="余额")
|
||||
private BigDecimal moneyBalance;
|
||||
public LambdaQueryWrapper<MemberAccount> toWrapper() {
|
||||
LambdaQueryWrapper<MemberAccount> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(MemberAccount::getIntegralBalance, integralBalance);
|
||||
queryWrapper.eq(MemberAccount::getTotalIntegralBalance, totalIntegralBalance);
|
||||
queryWrapper.eq(MemberAccount::getMemberId, memberId);
|
||||
queryWrapper.eq(getIntegralBalance() != null,MemberAccount::getIntegralBalance, integralBalance);
|
||||
queryWrapper.eq(getTotalIntegralBalance() != null,MemberAccount::getTotalIntegralBalance, totalIntegralBalance);
|
||||
queryWrapper.eq(getMemberId() != null,MemberAccount::getMemberId, memberId)
|
||||
;
|
||||
return queryWrapper;
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,61 @@
|
||||
package com.wzj.soopin.member.domain.bo;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.wzj.soopin.member.domain.po.MemberAccountChangeRecord;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import org.dromara.common.core.domain.BaseBO;
|
||||
import org.dromara.common.core.domain.model.BaseAudit;
|
||||
import org.dromara.common.excel.annotation.Excel;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 会员账户表对象 ums_member_account
|
||||
*
|
||||
* @author zcc
|
||||
*/
|
||||
@Schema(description="会员账户变动记录")
|
||||
@Data
|
||||
public class MemberAccountChangeRecordBO extends BaseBO<MemberAccountChangeRecord> {
|
||||
|
||||
private Long id;
|
||||
|
||||
|
||||
@Schema(description ="MEMBER_ID")
|
||||
private Long memberId;
|
||||
|
||||
|
||||
@Schema(description ="余额")
|
||||
private BigDecimal moneyBalance;
|
||||
|
||||
|
||||
@Schema(description ="变动前余额")
|
||||
private BigDecimal beforeBalance;
|
||||
|
||||
@Schema(description ="变动后余额")
|
||||
private BigDecimal afterBalance;
|
||||
|
||||
|
||||
@Schema(description ="变动金额")
|
||||
private BigDecimal changeAmount;
|
||||
|
||||
@Schema(description ="变动类型")
|
||||
private Integer changeType;
|
||||
|
||||
@Schema(description ="变动描述")
|
||||
private String changeDesc;
|
||||
|
||||
@Schema(description ="来源")
|
||||
private Integer source;
|
||||
|
||||
@Override
|
||||
public LambdaQueryWrapper<MemberAccountChangeRecord> toWrapper() {
|
||||
return new LambdaQueryWrapper<MemberAccountChangeRecord>()
|
||||
.eq(getMemberId() != null,MemberAccountChangeRecord::getMemberId,memberId)
|
||||
.eq(getChangeType() != null,MemberAccountChangeRecord::getChangeType,changeType)
|
||||
.eq(getSource() != null,MemberAccountChangeRecord::getSource,source);
|
||||
}
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
package com.wzj.soopin.member.domain.bo;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.Pattern;
|
||||
import jakarta.validation.constraints.Size;
|
||||
@ -17,14 +17,14 @@ import lombok.Data;
|
||||
public class MemberAddDTO {
|
||||
@NotEmpty(message = "会员用户名必填")
|
||||
@Size(max = 30,message = "会员用户名最长30位")
|
||||
@ApiModelProperty(value = "会员用户名")
|
||||
@Schema(description = "会员用户名")
|
||||
private String username;
|
||||
|
||||
@ApiModelProperty(value = "会员密码")
|
||||
@Schema(description = "会员密码")
|
||||
private String password;
|
||||
|
||||
@NotEmpty(message = "手机号码不能为空")
|
||||
@ApiModelProperty(value = "手机号码", required = true)
|
||||
@Schema(description ="手机号码", required = true)
|
||||
@Pattern(regexp = "^[1][3,4,5,6,7,8,9][0-9]{9}$", message = "手机号格式有误")
|
||||
private String mobile;
|
||||
}
|
||||
|
@ -2,11 +2,8 @@ package com.wzj.soopin.member.domain.bo;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.fasterxml.jackson.databind.ser.Serializers;
|
||||
import com.wzj.soopin.member.domain.po.Member;
|
||||
import com.wzj.soopin.member.domain.po.MemberAddress;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import org.dromara.common.core.domain.BaseBO;
|
||||
|
||||
@ -15,37 +12,37 @@ import org.dromara.common.core.domain.BaseBO;
|
||||
*
|
||||
* @author zcc
|
||||
*/
|
||||
@ApiModel(description="会员收货地址 查询 对象")
|
||||
@Schema(description="会员收货地址 查询 对象")
|
||||
@Data
|
||||
public class MemberAddressBO extends BaseBO {
|
||||
@ApiModelProperty("MEMBER_ID 精确匹配")
|
||||
@Schema(description ="MEMBER_ID 精确匹配")
|
||||
private Long memberId;
|
||||
|
||||
@ApiModelProperty("收货人名称 精确匹配")
|
||||
@Schema(description ="收货人名称 精确匹配")
|
||||
private String nameLike;
|
||||
|
||||
@ApiModelProperty("PHONE 精确匹配")
|
||||
@Schema(description ="PHONE 精确匹配")
|
||||
private String phone;
|
||||
|
||||
@ApiModelProperty("是否为默认 精确匹配")
|
||||
@Schema(description ="是否为默认 精确匹配")
|
||||
private Integer defaultStatus;
|
||||
|
||||
@ApiModelProperty("邮政编码 精确匹配")
|
||||
@Schema(description ="邮政编码 精确匹配")
|
||||
private String postCode;
|
||||
|
||||
@ApiModelProperty("省份/直辖市 精确匹配")
|
||||
@Schema(description ="省份/直辖市 精确匹配")
|
||||
private String province;
|
||||
|
||||
@ApiModelProperty("城市 精确匹配")
|
||||
@Schema(description ="城市 精确匹配")
|
||||
private String city;
|
||||
|
||||
@ApiModelProperty("区 精确匹配")
|
||||
@Schema(description ="区 精确匹配")
|
||||
private String district;
|
||||
|
||||
@ApiModelProperty("详细地址 精确匹配")
|
||||
@Schema(description ="详细地址 精确匹配")
|
||||
private String detailAddress;
|
||||
|
||||
@ApiModelProperty("是否默认 精确匹配")
|
||||
@Schema(description ="是否默认 精确匹配")
|
||||
private Integer isDefault;
|
||||
|
||||
@Override
|
||||
|
@ -2,8 +2,7 @@ package com.wzj.soopin.member.domain.bo;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.wzj.soopin.member.domain.po.Member;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.dromara.common.core.domain.BaseBO;
|
||||
@ -17,88 +16,85 @@ import java.time.LocalDateTime;
|
||||
*
|
||||
* @author zcc
|
||||
*/
|
||||
@ApiModel(description="会员信息 查询 对象")
|
||||
@Schema(description = "会员信息 查询 对象")
|
||||
@Data
|
||||
public class MemberBO extends BaseBO {
|
||||
@ApiModelProperty("昵称 精确匹配")
|
||||
public class MemberBO extends BaseBO {
|
||||
|
||||
|
||||
@Schema(description = "id")
|
||||
private Long id;
|
||||
|
||||
|
||||
@Schema(description = "昵称 精确匹配")
|
||||
private String nickname;
|
||||
|
||||
@ApiModelProperty("密码 精确匹配")
|
||||
@Schema(description = "密码 精确匹配")
|
||||
private String password;
|
||||
|
||||
@ApiModelProperty("手机号码 精确匹配")
|
||||
@Schema(description = "手机号码 精确匹配")
|
||||
private String phone;
|
||||
|
||||
@ApiModelProperty("有无备注 1:有备注 0:无备注")
|
||||
@Schema(description = "有无备注 1:有备注 0:无备注")
|
||||
private Integer hasMark;
|
||||
|
||||
@ApiModelProperty("用户备注 精确匹配")
|
||||
@Schema(description = "用户备注 精确匹配")
|
||||
private String mark;
|
||||
|
||||
@ApiModelProperty("帐号启用状态:0->禁用;1->启用 精确匹配")
|
||||
@Schema(description = "帐号启用状态:0->禁用;1->启用 精确匹配")
|
||||
private Integer status;
|
||||
|
||||
@ApiModelProperty("头像 精确匹配")
|
||||
@Schema(description = "头像 精确匹配")
|
||||
private String avatar;
|
||||
|
||||
@ApiModelProperty("性别:0->未知;1->男;2->女 精确匹配")
|
||||
@Schema(description = "性别:0->未知;1->男;2->女 精确匹配")
|
||||
private Integer gender;
|
||||
|
||||
@ApiModelProperty("用户所在城市 精确匹配")
|
||||
@Schema(description = "用户所在城市 精确匹配")
|
||||
private String city;
|
||||
|
||||
@ApiModelProperty("用户所在省份 精确匹配")
|
||||
@Schema(description = "用户所在省份 精确匹配")
|
||||
private String province;
|
||||
|
||||
@ApiModelProperty("用户所在国家 精确匹配")
|
||||
@Schema(description = "用户所在国家 精确匹配")
|
||||
private String country;
|
||||
|
||||
@ApiModelProperty("生日 精确匹配")
|
||||
@Schema(description = "生日 精确匹配")
|
||||
private LocalDate birthday;
|
||||
|
||||
@ApiModelProperty("推广员id 精确匹配")
|
||||
@Schema(description = "推广员id 精确匹配")
|
||||
private Long spreadUid;
|
||||
|
||||
@ApiModelProperty("推广员关联时间 精确匹配")
|
||||
@Schema(description = "推广员关联时间 精确匹配")
|
||||
private LocalDateTime spreadTime;
|
||||
|
||||
@ApiModelProperty("等级 精确匹配")
|
||||
@Schema(description = "等级 精确匹配")
|
||||
private Integer level;
|
||||
|
||||
@ApiModelProperty("用户剩余积分 精确匹配")
|
||||
@Schema(description = "用户剩余积分 精确匹配")
|
||||
private BigDecimal integral;
|
||||
|
||||
private String beginTime;
|
||||
|
||||
private String endTime;
|
||||
|
||||
public QueryWrapper<Member> toWapper(){
|
||||
public QueryWrapper<Member> toWapper() {
|
||||
QueryWrapper<Member> qw = new QueryWrapper<>();
|
||||
qw.lambda().like(!StringUtils.isEmpty(this.getNickname()),Member::getNickname, this.getNickname());
|
||||
|
||||
String phone = this.getPhone();
|
||||
if (!StringUtils.isEmpty(phone)) {
|
||||
qw.eq("phone_encrypted", phone);
|
||||
}
|
||||
if (!StringUtils.isEmpty(this.getBeginTime()) && !StringUtils.isEmpty(this.getEndTime())){
|
||||
qw.ge("create_time", this.getBeginTime());
|
||||
qw.lt("create_time", this.getEndTime());
|
||||
}
|
||||
qw.lambda()
|
||||
.like(StringUtils.isNotEmpty(this.getNickname()), Member::getNickname, this.getNickname())
|
||||
.eq(getId() != null, Member::getId, this.getId())
|
||||
.eq(status != null, Member::getStatus, status)
|
||||
.eq(StringUtils.isNotEmpty(this.getPhone()), Member::getPhoneEncrypted, phone);
|
||||
qw.ge(getBeginTime() != null, "create_time", this.getBeginTime());
|
||||
qw.lt(getEndTime() != null, "create_time", this.getEndTime());
|
||||
if (this.getHasMark() != null) {
|
||||
switch (this.getHasMark()) {
|
||||
case 0:
|
||||
qw.isNull("mark").or().eq("mark","");
|
||||
qw.isNull("mark").or().eq("mark", "");
|
||||
break;
|
||||
case 1:
|
||||
qw.isNotNull("mark").ne("mark","");
|
||||
qw.isNotNull("mark").ne("mark", "");
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (this.getStatus() != null){
|
||||
qw.eq("status", this.getStatus());
|
||||
}
|
||||
return qw;
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,6 @@
|
||||
package com.wzj.soopin.member.domain.bo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
@ -9,34 +8,34 @@ import lombok.Data;
|
||||
*
|
||||
* @author zcc
|
||||
*/
|
||||
@ApiModel(description="购物车 查询 对象")
|
||||
@Schema(description="购物车 查询 对象")
|
||||
@Data
|
||||
public class MemberCartBO {
|
||||
@ApiModelProperty("0->失效;1->有效 精确匹配")
|
||||
@Schema(description ="0->失效;1->有效 精确匹配")
|
||||
private Integer status;
|
||||
|
||||
@ApiModelProperty("用户ID 精确匹配")
|
||||
@Schema(description ="用户ID 精确匹配")
|
||||
private Long memberId;
|
||||
|
||||
@ApiModelProperty("商品ID 精确匹配")
|
||||
@Schema(description ="商品ID 精确匹配")
|
||||
private Long productId;
|
||||
|
||||
@ApiModelProperty("展示图片 精确匹配")
|
||||
@Schema(description ="展示图片 精确匹配")
|
||||
private String pic;
|
||||
|
||||
@ApiModelProperty("SKU ID 精确匹配")
|
||||
@Schema(description ="SKU ID 精确匹配")
|
||||
private Long skuId;
|
||||
|
||||
@ApiModelProperty("商品名称 精确匹配")
|
||||
@Schema(description ="商品名称 精确匹配")
|
||||
private String productName;
|
||||
|
||||
@ApiModelProperty("商品属性 精确匹配")
|
||||
@Schema(description ="商品属性 精确匹配")
|
||||
private String spData;
|
||||
|
||||
@ApiModelProperty("商品数量 精确匹配")
|
||||
@Schema(description ="商品数量 精确匹配")
|
||||
private Integer quantity;
|
||||
|
||||
@ApiModelProperty("用户手机号")
|
||||
@Schema(description ="用户手机号")
|
||||
private String phone;
|
||||
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
package com.wzj.soopin.member.domain.bo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.Max;
|
||||
import jakarta.validation.constraints.Min;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
@ -21,31 +21,31 @@ import java.util.Date;
|
||||
public class MemberEditDTO {
|
||||
|
||||
|
||||
@ApiModelProperty(value = "昵称", required = true)
|
||||
@Schema(description = "昵称", required = true)
|
||||
@Size(min = 2, max = 20, message = "会员昵称必须为2到20位之间")
|
||||
private String nickName;
|
||||
|
||||
@ApiModelProperty(value = "会员地址ID")
|
||||
@Schema(description = "会员地址ID")
|
||||
private String regionId;
|
||||
|
||||
@ApiModelProperty(value = "会员地址")
|
||||
@Schema(description = "会员地址")
|
||||
private String region;
|
||||
|
||||
@Min(message = "必须为数字且1为男,0为女", value = 0)
|
||||
@Max(message = "必须为数字且1为男,0为女", value = 1)
|
||||
@NotNull(message = "会员性别不能为空")
|
||||
@ApiModelProperty(value = "会员性别,1为男,0为女", required = true)
|
||||
@Schema(description = "会员性别,1为男,0为女", required = true)
|
||||
private Integer sex;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
@ApiModelProperty(value = "会员生日")
|
||||
@Schema(description = "会员生日")
|
||||
private Date birthday;
|
||||
|
||||
@ApiModelProperty(value = "详细地址")
|
||||
@Schema(description = "详细地址")
|
||||
private String address;
|
||||
|
||||
@ApiModelProperty(value = "会员头像")
|
||||
@Schema(description = "会员头像")
|
||||
private String face;
|
||||
|
||||
}
|
||||
|
@ -2,8 +2,7 @@ package com.wzj.soopin.member.domain.bo;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.wzj.soopin.member.domain.po.MemberLoginInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import org.dromara.common.core.domain.BaseBO;
|
||||
|
||||
@ -14,34 +13,30 @@ import java.time.LocalDateTime;
|
||||
*
|
||||
* @author zcc
|
||||
*/
|
||||
@ApiModel(description="会员登录记录 查询 对象")
|
||||
@Schema(description="会员登录记录 查询 对象")
|
||||
@Data
|
||||
public class MemberLoginInfoBO extends BaseBO<MemberLoginInfo> {
|
||||
@ApiModelProperty("会员手机号 精确匹配")
|
||||
@Schema(description ="会员手机号 精确匹配")
|
||||
private String phone;
|
||||
|
||||
@ApiModelProperty("会员id 精确匹配")
|
||||
@Schema(description ="会员id 精确匹配")
|
||||
private Long memberId;
|
||||
|
||||
@ApiModelProperty("登录IP地址 精确匹配")
|
||||
@Schema(description ="登录IP地址 精确匹配")
|
||||
private String ipaddr;
|
||||
|
||||
@ApiModelProperty("登录地点 精确匹配")
|
||||
@Schema(description ="登录地点 精确匹配")
|
||||
private String loginLocation;
|
||||
|
||||
@ApiModelProperty("浏览器类型 精确匹配")
|
||||
@Schema(description ="浏览器类型 精确匹配")
|
||||
private String browser;
|
||||
|
||||
@ApiModelProperty("操作系统 精确匹配")
|
||||
@Schema(description ="操作系统 精确匹配")
|
||||
private String os;
|
||||
|
||||
@ApiModelProperty("登陆时间 精确匹配")
|
||||
@Schema(description ="登陆时间 精确匹配")
|
||||
private LocalDateTime loginTime;
|
||||
|
||||
private String beginTime;
|
||||
|
||||
private String endTime;
|
||||
|
||||
@Override
|
||||
public LambdaQueryWrapper<MemberLoginInfo> toWrapper() {
|
||||
return super.toWrapper();
|
||||
|
@ -1,7 +1,6 @@
|
||||
package com.wzj.soopin.member.domain.bo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
@ -11,46 +10,46 @@ import java.time.LocalDateTime;
|
||||
*
|
||||
* @author zcc
|
||||
*/
|
||||
@ApiModel(description="用户微信信息 查询 对象")
|
||||
@Schema(description="用户微信信息 查询 对象")
|
||||
@Data
|
||||
public class MemberWechatBO {
|
||||
@ApiModelProperty("MEMBER_ID 精确匹配")
|
||||
@Schema(description ="MEMBER_ID 精确匹配")
|
||||
private Long memberId;
|
||||
|
||||
@ApiModelProperty("只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段 精确匹配")
|
||||
@Schema(description ="只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段 精确匹配")
|
||||
private String unionid;
|
||||
|
||||
@ApiModelProperty("用户的标识,对当前公众号唯一 精确匹配")
|
||||
@Schema(description ="用户的标识,对当前公众号唯一 精确匹配")
|
||||
private String openid;
|
||||
|
||||
@ApiModelProperty("小程序唯一身份ID 精确匹配")
|
||||
@Schema(description ="小程序唯一身份ID 精确匹配")
|
||||
private String routineOpenid;
|
||||
|
||||
@ApiModelProperty("用户所在的分组ID(兼容旧的用户分组接口) 精确匹配")
|
||||
@Schema(description ="用户所在的分组ID(兼容旧的用户分组接口) 精确匹配")
|
||||
private Integer groupid;
|
||||
|
||||
@ApiModelProperty("用户被打上的标签ID列表 精确匹配")
|
||||
@Schema(description ="用户被打上的标签ID列表 精确匹配")
|
||||
private String tagidList;
|
||||
|
||||
@ApiModelProperty("用户是否订阅该公众号标识 精确匹配")
|
||||
@Schema(description ="用户是否订阅该公众号标识 精确匹配")
|
||||
private Integer subscribe;
|
||||
|
||||
@ApiModelProperty("关注公众号时间 精确匹配")
|
||||
@Schema(description ="关注公众号时间 精确匹配")
|
||||
private Integer subscribeTime;
|
||||
|
||||
@ApiModelProperty("小程序用户会话密匙 精确匹配")
|
||||
@Schema(description ="小程序用户会话密匙 精确匹配")
|
||||
private String sessionKey;
|
||||
|
||||
@ApiModelProperty("token 精确匹配")
|
||||
@Schema(description ="token 精确匹配")
|
||||
private String accessToken;
|
||||
|
||||
@ApiModelProperty("过期时间 精确匹配")
|
||||
@Schema(description ="过期时间 精确匹配")
|
||||
private Integer expiresIn;
|
||||
|
||||
@ApiModelProperty("刷新token 精确匹配")
|
||||
@Schema(description ="刷新token 精确匹配")
|
||||
private String refreshToken;
|
||||
|
||||
@ApiModelProperty("过期时间 精确匹配")
|
||||
@Schema(description ="过期时间 精确匹配")
|
||||
private LocalDateTime expireTime;
|
||||
|
||||
}
|
||||
|
@ -1,42 +1,33 @@
|
||||
package com.wzj.soopin.member.domain.po;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import org.dromara.common.core.domain.model.BaseAudit;
|
||||
import org.dromara.common.excel.annotation.Excel;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 地址对象
|
||||
*
|
||||
*/
|
||||
@ApiModel(description="地址对象")
|
||||
@Schema(description="地址对象")
|
||||
@Data
|
||||
@TableName("address")
|
||||
public class Address extends BaseAudit {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("ID")
|
||||
@Schema(description ="ID")
|
||||
private Integer id;
|
||||
|
||||
@ApiModelProperty("地区邮编")
|
||||
@Excel(name = "地区邮编")
|
||||
@Schema(description ="地区邮编")
|
||||
private Long code;
|
||||
|
||||
@ApiModelProperty("父地区邮编")
|
||||
@Excel(name = "父地区邮编")
|
||||
@Schema(description ="父地区邮编")
|
||||
private Long parentCode;
|
||||
|
||||
@ApiModelProperty("地区名")
|
||||
@Excel(name = "地区名")
|
||||
@Schema(description ="地区名")
|
||||
private String name;
|
||||
|
||||
@ApiModelProperty("地区层级")
|
||||
@Excel(name = "地区层级")
|
||||
@Schema(description ="地区层级")
|
||||
private Integer level;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -3,13 +3,10 @@ package com.wzj.soopin.member.domain.po;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.dromara.common.core.domain.model.BaseAudit;
|
||||
import org.dromara.common.tenant.core.TenantEntity;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@TableName( "ums_fans")
|
||||
@Data
|
||||
@ -17,14 +14,15 @@ import java.util.Date;
|
||||
public class Fans extends BaseAudit {
|
||||
|
||||
|
||||
@ApiModelProperty("ID")
|
||||
@Schema(description ="ID")
|
||||
@TableId
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 作家用户id
|
||||
*/
|
||||
@TableField( "vloger_id")
|
||||
private String vlogerId;
|
||||
@TableField( "vlogger_id")
|
||||
private Long vloggerId;
|
||||
|
||||
|
||||
|
||||
@ -32,12 +30,18 @@ public class Fans extends BaseAudit {
|
||||
/**
|
||||
* 粉丝用户id
|
||||
*/
|
||||
private String fanId;
|
||||
@Schema(description ="粉丝id")
|
||||
private Long fanId;
|
||||
|
||||
/**
|
||||
* 粉丝是否是vloger的朋友,如果成为朋友,则本表的双方此字段都需要设置为1,如果有一人取关,则两边都需要设置为0
|
||||
*/
|
||||
private Integer isFanFriendOfMine;
|
||||
@Schema(description ="是否是好友")
|
||||
private Integer friendFlag;
|
||||
|
||||
|
||||
@Schema(description ="是否互相关注")
|
||||
private Integer bothFriend;
|
||||
|
||||
|
||||
}
|
||||
|
@ -1,12 +1,10 @@
|
||||
package com.wzj.soopin.member.domain.po;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import org.dromara.common.core.domain.model.BaseAudit;
|
||||
import org.dromara.common.excel.annotation.Excel;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
/**
|
||||
@ -14,41 +12,60 @@ import java.time.LocalDateTime;
|
||||
*
|
||||
* @author zcc
|
||||
*/
|
||||
@ApiModel(description="意见反馈对象")
|
||||
@Schema(description="意见反馈对象")
|
||||
@Data
|
||||
@TableName("ums_feedback")
|
||||
public class Feedback extends BaseAudit {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("ID")
|
||||
@Schema(description ="ID")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("类型")
|
||||
@Excel(name = "类型")
|
||||
private String type;
|
||||
@Schema(description ="类型")
|
||||
private Integer type;
|
||||
|
||||
@ApiModelProperty("具体说明")
|
||||
@Excel(name = "具体说明")
|
||||
@Schema(description ="具体说明")
|
||||
private String content;
|
||||
|
||||
@ApiModelProperty("图片")
|
||||
@Excel(name = "图片")
|
||||
@Schema(description ="图片")
|
||||
private String images;
|
||||
|
||||
@ApiModelProperty("联系电话")
|
||||
@Excel(name = "联系电话")
|
||||
@Schema(description ="联系电话")
|
||||
private String phone;
|
||||
|
||||
@ApiModelProperty("处理状态 0:未处理 1:已处理")
|
||||
@Excel(name = "处理状态 0:未处理 1:已处理")
|
||||
private Integer handleStatus;
|
||||
@Schema(description ="处理状态 0:未处理 1:已处理")
|
||||
private Integer status;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
@Excel(name = "备注")
|
||||
@Schema(description ="备注")
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty("处理时间")
|
||||
@Excel(name = "处理时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
@Schema(description ="处理时间")
|
||||
private LocalDateTime handleTime;
|
||||
|
||||
|
||||
|
||||
@Schema(description ="反馈对象ID")
|
||||
private Long aimId;
|
||||
|
||||
@Schema(description ="反馈对象类型 0 会员 1 群组 2 评论 3 视频 4 聊天" )
|
||||
private Integer aimType;
|
||||
|
||||
@Schema(description ="反馈分类")
|
||||
private Integer category;
|
||||
|
||||
@Schema(description ="会员ID")
|
||||
private Long memberId;
|
||||
|
||||
@Schema(description ="处理人")
|
||||
private Long handlerId;
|
||||
|
||||
@Schema(description ="处理结果类型 0:文本 1:图片")
|
||||
private Integer resultType;
|
||||
|
||||
@Schema(description ="处理结果")
|
||||
private String resultContent;
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -1,14 +1,12 @@
|
||||
package com.wzj.soopin.member.domain.po;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckHttpDigest;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import org.dromara.common.core.domain.model.BaseAudit;
|
||||
import org.dromara.common.excel.annotation.Excel;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
@ -18,102 +16,84 @@ import java.time.LocalDateTime;
|
||||
*
|
||||
* @author zcc
|
||||
*/
|
||||
@ApiModel(description="会员信息对象")
|
||||
@Schema(description="会员信息对象")
|
||||
@Data
|
||||
@Builder
|
||||
@TableName("ums_member")
|
||||
public class Member extends BaseAudit {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
|
||||
|
||||
|
||||
@ApiModelProperty("ID")
|
||||
@Schema(description = "会员id")
|
||||
@TableId
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("用户名")
|
||||
@Excel(name = "用户名")
|
||||
@Schema(description = "用户名")
|
||||
private String userName;
|
||||
|
||||
@ApiModelProperty("昵称")
|
||||
@Excel(name = "昵称")
|
||||
@Schema(description ="昵称")
|
||||
private String nickname;
|
||||
|
||||
@ApiModelProperty("密码")
|
||||
@Excel(name = "密码")
|
||||
@Schema(description ="密码")
|
||||
private String password;
|
||||
|
||||
@ApiModelProperty("加密手机号")
|
||||
@Schema(description ="加密手机号")
|
||||
private String phoneEncrypted;
|
||||
|
||||
@ApiModelProperty("隐藏前三位后四位的手机号")
|
||||
@Schema(description ="隐藏前三位后四位的手机号")
|
||||
private String phoneHidden;
|
||||
|
||||
@ApiModelProperty("用户备注")
|
||||
@Excel(name = "用户备注")
|
||||
@Schema(description ="用户备注")
|
||||
private String mark;
|
||||
|
||||
@ApiModelProperty("帐号启用状态:0->禁用;1->启用")
|
||||
@Excel(name = "帐号启用状态:0->禁用;1->启用")
|
||||
@Schema(description ="帐号启用状态:0->禁用;1->启用")
|
||||
private Integer status;
|
||||
|
||||
@ApiModelProperty("头像")
|
||||
@Excel(name = "头像")
|
||||
@Schema(description ="头像")
|
||||
private String avatar;
|
||||
|
||||
@ApiModelProperty("性别:0->未知;1->男;2->女")
|
||||
@Excel(name = "性别:0->未知;1->男;2->女")
|
||||
@Schema(description ="性别:0->未知;1->男;2->女")
|
||||
private Integer gender;
|
||||
|
||||
@ApiModelProperty("用户所在城市")
|
||||
@Excel(name = "用户所在城市")
|
||||
@Schema(description ="用户所在城市")
|
||||
private String city;
|
||||
|
||||
@ApiModelProperty("用户所在省份")
|
||||
@Excel(name = "用户所在省份")
|
||||
@Schema(description ="用户所在省份")
|
||||
private String province;
|
||||
|
||||
@ApiModelProperty("用户所在国家")
|
||||
@Excel(name = "用户所在国家")
|
||||
@Schema(description ="用户所在国家")
|
||||
private String country;
|
||||
|
||||
@ApiModelProperty("公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注")
|
||||
@Excel(name = "公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注")
|
||||
@Schema(description ="公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注")
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty("生日")
|
||||
@Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
@Schema(description ="生日")
|
||||
private LocalDate birthday;
|
||||
|
||||
@ApiModelProperty("推广员id")
|
||||
@Excel(name = "推广员id")
|
||||
@Schema(description ="推广员id")
|
||||
private Long spreadUid;
|
||||
|
||||
@ApiModelProperty("推广员关联时间")
|
||||
@Excel(name = "推广员关联时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
@Schema(description ="推广员关联时间")
|
||||
private LocalDateTime spreadTime;
|
||||
|
||||
@ApiModelProperty("等级")
|
||||
@Excel(name = "等级")
|
||||
@Schema(description ="等级")
|
||||
private Integer level;
|
||||
|
||||
@ApiModelProperty("用户剩余积分")
|
||||
@Excel(name = "用户剩余积分")
|
||||
@Schema(description ="用户剩余积分")
|
||||
private BigDecimal integral;
|
||||
|
||||
@ApiModelProperty("im签名")
|
||||
@Excel(name = "im签名")
|
||||
@Schema(description ="im签名")
|
||||
private String userSig; // 添加 UserSig 属性
|
||||
|
||||
@ApiModelProperty("发布视频")
|
||||
@Excel(name = "发布视频")
|
||||
@Schema(description ="发布视频")
|
||||
private Integer vlogCount;
|
||||
@ApiModelProperty("粉丝数")
|
||||
@Excel(name = "粉丝数")
|
||||
@Schema(description ="粉丝数")
|
||||
private Integer fansCount;
|
||||
@ApiModelProperty("关注数")
|
||||
@Excel(name = "关注数")
|
||||
@Schema(description ="关注数")
|
||||
private Integer followCount;
|
||||
|
||||
@Schema(description ="好友数")
|
||||
private Integer friendsCount;
|
||||
|
||||
@Schema(description ="微信openId")
|
||||
private Long openId;
|
||||
|
||||
|
||||
}
|
||||
|
@ -3,38 +3,44 @@ package com.wzj.soopin.member.domain.po;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import org.dromara.common.core.domain.model.BaseAudit;
|
||||
import org.dromara.common.excel.annotation.Excel;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
/**
|
||||
* 会员账户表对象 ums_member_account
|
||||
*
|
||||
* @author zcc
|
||||
*/
|
||||
@ApiModel(description="会员账户表对象")
|
||||
@Schema(description="会员账户表对象")
|
||||
@Data
|
||||
@TableName("ums_member_account")
|
||||
@TableName("ums_account")
|
||||
@Builder(toBuilder = true)
|
||||
public class MemberAccount extends BaseAudit {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("MEMBER_ID")
|
||||
@TableId(value="member_id", type = IdType.ASSIGN_ID)
|
||||
@Schema(description ="MEMBER_ID")
|
||||
@TableId(value="member_id")
|
||||
private Long memberId;
|
||||
|
||||
@ApiModelProperty("积分余额")
|
||||
@Excel(name = "积分余额")
|
||||
@Schema(description ="积分余额")
|
||||
private BigDecimal integralBalance;
|
||||
|
||||
@ApiModelProperty("历史总共积分")
|
||||
@Excel(name = "历史总共积分")
|
||||
@Schema(description ="历史总共积分")
|
||||
private BigDecimal totalIntegralBalance;
|
||||
|
||||
|
||||
@Schema(description ="余额")
|
||||
private BigDecimal moneyBalance;
|
||||
|
||||
|
||||
@Schema(description ="钱包")
|
||||
private BigDecimal wallet;
|
||||
|
||||
@Schema(description ="营收")
|
||||
private BigDecimal revenue;
|
||||
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,57 @@
|
||||
package com.wzj.soopin.member.domain.po;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import org.dromara.common.core.domain.model.BaseAudit;
|
||||
import org.dromara.common.excel.annotation.Excel;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 会员账户表对象 ums_member_account
|
||||
*
|
||||
* @author zcc
|
||||
*/
|
||||
@Schema(description="会员账户变动记录")
|
||||
@Data
|
||||
@TableName("ums_account_change_record")
|
||||
public class MemberAccountChangeRecord extends BaseAudit {
|
||||
|
||||
@Schema(description ="主键")
|
||||
@TableId(value="id")
|
||||
private Long id;
|
||||
|
||||
@Schema(description ="会员id")
|
||||
private Long memberId;
|
||||
|
||||
|
||||
@Schema(description ="余额")
|
||||
private BigDecimal moneyBalance;
|
||||
|
||||
|
||||
@Schema(description ="变动前余额")
|
||||
private BigDecimal beforeBalance;
|
||||
|
||||
@Schema(description ="变动后余额")
|
||||
private BigDecimal afterBalance;
|
||||
|
||||
|
||||
@Schema(description ="变动金额")
|
||||
|
||||
@Excel(name = "变动金额")
|
||||
private BigDecimal changeAmount;
|
||||
|
||||
@Schema(description ="变动类型")
|
||||
private Integer changeType;
|
||||
|
||||
@Schema(description ="变动描述")
|
||||
private String changeDesc;
|
||||
|
||||
@Schema(description ="来源")
|
||||
private Integer source;
|
||||
|
||||
|
||||
}
|
@ -1,81 +1,77 @@
|
||||
package com.wzj.soopin.member.domain.po;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import org.dromara.common.core.domain.model.BaseAudit;
|
||||
import org.dromara.common.excel.annotation.Excel;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 会员收货地址对象 ums_member_address
|
||||
*
|
||||
* @author zcc
|
||||
*/
|
||||
@ApiModel(description="会员收货地址对象")
|
||||
@Schema(description="会员收货地址对象")
|
||||
@Data
|
||||
@TableName("ums_member_address")
|
||||
public class MemberAddress extends BaseAudit {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("ID")
|
||||
@Schema(description ="ID")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("MEMBER_ID")
|
||||
@Schema(description ="MEMBER_ID")
|
||||
@Excel(name = "MEMBER_ID")
|
||||
private Long memberId;
|
||||
|
||||
@ApiModelProperty("收货人名称")
|
||||
@Schema(description ="收货人名称")
|
||||
@Excel(name = "收货人名称")
|
||||
private String name;
|
||||
|
||||
@ApiModelProperty("隐藏前三位后四位的手机号")
|
||||
@Schema(description ="隐藏前三位后四位的手机号")
|
||||
@Excel(name = "隐藏前三位后四位的手机号")
|
||||
private String phoneHidden;
|
||||
|
||||
@ApiModelProperty("加密的手机号")
|
||||
@Schema(description ="加密的手机号")
|
||||
@Excel(name = "加密的手机号")
|
||||
private String phoneEncrypted;
|
||||
|
||||
@ApiModelProperty("是否为默认")
|
||||
@Schema(description ="是否为默认")
|
||||
@Excel(name = "是否为默认")
|
||||
private Integer defaultStatus;
|
||||
private Integer defaultFlag;
|
||||
|
||||
@ApiModelProperty("邮政编码")
|
||||
@Schema(description ="邮政编码")
|
||||
@Excel(name = "邮政编码")
|
||||
private String postCode;
|
||||
|
||||
@ApiModelProperty("省份/直辖市")
|
||||
@Schema(description ="省份/直辖市")
|
||||
@Excel(name = "省份/直辖市")
|
||||
private String province;
|
||||
|
||||
@ApiModelProperty("城市")
|
||||
@Schema(description ="城市")
|
||||
@Excel(name = "城市")
|
||||
private String city;
|
||||
|
||||
@ApiModelProperty("区")
|
||||
@Schema(description ="区")
|
||||
@Excel(name = "区")
|
||||
private String district;
|
||||
|
||||
@ApiModelProperty("省份/直辖市id")
|
||||
@Schema(description ="省份/直辖市id")
|
||||
@Excel(name = "省份/直辖市id")
|
||||
private Long provinceId;
|
||||
|
||||
@ApiModelProperty("城市id")
|
||||
@Schema(description ="城市id")
|
||||
@Excel(name = "城市id")
|
||||
private Long cityId;
|
||||
|
||||
@ApiModelProperty("区id")
|
||||
@Schema(description ="区id")
|
||||
@Excel(name = "区id")
|
||||
private Long districtId;
|
||||
|
||||
@ApiModelProperty("详细地址(街道)")
|
||||
@Schema(description ="详细地址(街道)")
|
||||
@Excel(name = "详细地址(街道)")
|
||||
private String detailAddress;
|
||||
|
||||
@ApiModelProperty("是否默认")
|
||||
@Excel(name = "是否默认")
|
||||
private Integer isDefault;
|
||||
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,30 @@
|
||||
package com.wzj.soopin.member.domain.po;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import org.dromara.common.core.domain.model.BaseAudit;
|
||||
|
||||
/**
|
||||
* 黑名单
|
||||
*
|
||||
*/
|
||||
@Schema(description="黑名单")
|
||||
@Data
|
||||
@TableName("ums_block")
|
||||
@Builder(toBuilder = true)
|
||||
public class MemberBlock extends BaseAudit {
|
||||
|
||||
@Schema(description ="ID")
|
||||
@TableId
|
||||
private Long id;
|
||||
|
||||
@Schema(description ="用户id")
|
||||
private Long memberId;
|
||||
|
||||
@Schema(description ="被拉黑人id")
|
||||
private Long blockMemberId;
|
||||
|
||||
}
|
@ -1,56 +1,56 @@
|
||||
package com.wzj.soopin.member.domain.po;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import org.dromara.common.core.domain.model.BaseAudit;
|
||||
import org.dromara.common.excel.annotation.Excel;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 购物车对象 ums_member_cart
|
||||
*
|
||||
* @author zcc
|
||||
*/
|
||||
@ApiModel(description="购物车对象")
|
||||
@Schema(description="购物车对象")
|
||||
@Data
|
||||
@TableName("ums_member_cart")
|
||||
public class MemberCart extends BaseAudit {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("购物车表ID")
|
||||
@Schema(description ="购物车表ID")
|
||||
@TableId
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("0->失效;1->有效")
|
||||
@Schema(description ="0->失效;1->有效")
|
||||
@Excel(name = "0->失效;1->有效")
|
||||
private Integer status;
|
||||
|
||||
@ApiModelProperty("用户ID")
|
||||
@Schema(description ="用户ID")
|
||||
@Excel(name = "用户ID")
|
||||
private Long memberId;
|
||||
|
||||
@ApiModelProperty("商品ID")
|
||||
@Schema(description ="商品ID")
|
||||
@Excel(name = "商品ID")
|
||||
private Long productId;
|
||||
|
||||
@ApiModelProperty("展示图片")
|
||||
@Schema(description ="展示图片")
|
||||
@Excel(name = "展示图片")
|
||||
private String pic;
|
||||
|
||||
@ApiModelProperty("SKU ID")
|
||||
@Schema(description ="SKU ID")
|
||||
@Excel(name = "SKU ID")
|
||||
private Long skuId;
|
||||
|
||||
@ApiModelProperty("PRODUCT_NAME")
|
||||
@Schema(description ="PRODUCT_NAME")
|
||||
@Excel(name = "PRODUCT_NAME")
|
||||
private String productName;
|
||||
|
||||
@ApiModelProperty("商品属性")
|
||||
@Schema(description ="商品属性")
|
||||
@Excel(name = "商品属性")
|
||||
private String spData;
|
||||
|
||||
@ApiModelProperty("商品数量")
|
||||
@Schema(description ="商品数量")
|
||||
@Excel(name = "商品数量")
|
||||
private Integer quantity;
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
package com.wzj.soopin.member.domain.po;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import org.dromara.common.excel.annotation.Excel;
|
||||
|
||||
@ -12,40 +12,41 @@ import java.time.LocalDateTime;
|
||||
*
|
||||
* @author zcc
|
||||
*/
|
||||
@ApiModel(description="会员登录记录对象")
|
||||
@Schema(description="会员登录记录对象")
|
||||
@Data
|
||||
@TableName("ums_member_login_info")
|
||||
public class MemberLoginInfo {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("ID")
|
||||
@Schema(description ="ID")
|
||||
@TableId
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("会员手机号")
|
||||
@Schema(description ="会员手机号")
|
||||
@Excel(name = "会员手机号")
|
||||
private String phone;
|
||||
|
||||
@ApiModelProperty("会员id")
|
||||
@Schema(description ="会员id")
|
||||
@Excel(name = "会员id")
|
||||
private Long memberId;
|
||||
|
||||
@ApiModelProperty("登录IP地址")
|
||||
@Schema(description ="登录IP地址")
|
||||
@Excel(name = "登录IP地址")
|
||||
private String ipaddr;
|
||||
|
||||
@ApiModelProperty("登录地点")
|
||||
@Schema(description ="登录地点")
|
||||
@Excel(name = "登录地点")
|
||||
private String loginLocation;
|
||||
|
||||
@ApiModelProperty("浏览器类型")
|
||||
@Schema(description ="浏览器类型")
|
||||
@Excel(name = "浏览器类型")
|
||||
private String browser;
|
||||
|
||||
@ApiModelProperty("操作系统")
|
||||
@Schema(description ="操作系统")
|
||||
@Excel(name = "操作系统")
|
||||
private String os;
|
||||
|
||||
@ApiModelProperty("登陆时间")
|
||||
@Schema(description ="登陆时间")
|
||||
@Excel(name = "登陆时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime loginTime;
|
||||
|
||||
|
@ -1,12 +1,10 @@
|
||||
package com.wzj.soopin.member.domain.po;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import org.dromara.common.core.domain.model.BaseAudit;
|
||||
import org.dromara.common.excel.annotation.Excel;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
/**
|
||||
@ -14,64 +12,64 @@ import java.time.LocalDateTime;
|
||||
*
|
||||
* @author zcc
|
||||
*/
|
||||
@ApiModel(description="用户微信信息对象")
|
||||
@Schema(description="用户微信信息对象")
|
||||
@Data
|
||||
@TableName("ums_member_wechat")
|
||||
public class MemberWechat extends BaseAudit {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("ID")
|
||||
@Schema(description ="ID")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("MEMBER_ID")
|
||||
@Schema(description ="MEMBER_ID")
|
||||
@Excel(name = "MEMBER_ID")
|
||||
private Long memberId;
|
||||
|
||||
@ApiModelProperty("只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段")
|
||||
@Schema(description ="只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段")
|
||||
@Excel(name = "只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段")
|
||||
private String unionid;
|
||||
|
||||
@ApiModelProperty("用户的标识,对当前公众号唯一")
|
||||
@Schema(description ="用户的标识,对当前公众号唯一")
|
||||
@Excel(name = "用户的标识,对当前公众号唯一")
|
||||
private String openid;
|
||||
|
||||
@ApiModelProperty("小程序唯一身份ID")
|
||||
@Schema(description ="小程序唯一身份ID")
|
||||
@Excel(name = "小程序唯一身份ID")
|
||||
private String routineOpenid;
|
||||
|
||||
@ApiModelProperty("用户所在的分组ID(兼容旧的用户分组接口)")
|
||||
@Schema(description ="用户所在的分组ID(兼容旧的用户分组接口)")
|
||||
@Excel(name = "用户所在的分组ID", readConverterExp = "兼=容旧的用户分组接口")
|
||||
private Integer groupid;
|
||||
|
||||
@ApiModelProperty("用户被打上的标签ID列表")
|
||||
@Schema(description ="用户被打上的标签ID列表")
|
||||
@Excel(name = "用户被打上的标签ID列表")
|
||||
private String tagidList;
|
||||
|
||||
@ApiModelProperty("用户是否订阅该公众号标识")
|
||||
@Schema(description ="用户是否订阅该公众号标识")
|
||||
@Excel(name = "用户是否订阅该公众号标识")
|
||||
private Integer subscribe;
|
||||
|
||||
@ApiModelProperty("关注公众号时间")
|
||||
@Schema(description ="关注公众号时间")
|
||||
@Excel(name = "关注公众号时间")
|
||||
private Integer subscribeTime;
|
||||
|
||||
@ApiModelProperty("小程序用户会话密匙")
|
||||
@Schema(description ="小程序用户会话密匙")
|
||||
@Excel(name = "小程序用户会话密匙")
|
||||
private String sessionKey;
|
||||
|
||||
@ApiModelProperty("token")
|
||||
@Schema(description ="token")
|
||||
@Excel(name = "token")
|
||||
private String accessToken;
|
||||
|
||||
@ApiModelProperty("过期时间")
|
||||
@Schema(description ="过期时间")
|
||||
@Excel(name = "过期时间")
|
||||
private Integer expiresIn;
|
||||
|
||||
@ApiModelProperty("刷新token")
|
||||
@Schema(description ="刷新token")
|
||||
@Excel(name = "刷新token")
|
||||
private String refreshToken;
|
||||
|
||||
@ApiModelProperty("过期时间")
|
||||
@Schema(description ="过期时间")
|
||||
@Excel(name = "过期时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime expireTime;
|
||||
|
||||
|
@ -1,19 +1,40 @@
|
||||
package com.wzj.soopin.member.domain.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.ToString;
|
||||
import org.dromara.common.excel.annotation.Excel;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@ToString
|
||||
@Schema(description ="粉丝")
|
||||
public class FansVO {
|
||||
|
||||
|
||||
@Schema(description ="博主id")
|
||||
@Excel(name = "博主id")
|
||||
private String vlogerId;
|
||||
|
||||
@Schema(description ="粉丝id")
|
||||
@Excel(name = "粉丝id")
|
||||
private String fanId;
|
||||
@Schema(description ="昵称")
|
||||
@Excel(name = "昵称")
|
||||
private String nickname;
|
||||
@Schema(description ="头像")
|
||||
@Excel(name = "头像")
|
||||
private String face;
|
||||
private boolean isFriend = false;
|
||||
@Schema(description ="是否是好友")
|
||||
@Excel(name = "是否是好友")
|
||||
private boolean friendFlag = false;
|
||||
@Schema(description ="是否互相关注")
|
||||
@Excel(name = "是否互相关注")
|
||||
private int bothFriend;
|
||||
@Schema(description ="创建时间")
|
||||
@Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private String createdTime;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package com.wzj.soopin.member.domain.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import org.dromara.common.excel.annotation.Excel;
|
||||
|
||||
@ -11,12 +12,13 @@ import java.time.LocalDateTime;
|
||||
* @author zcc
|
||||
*/
|
||||
@Data
|
||||
@Schema(description ="反馈")
|
||||
public class FeedbackVO {
|
||||
/** ID */
|
||||
private Long id;
|
||||
/** 类型 */
|
||||
@Excel(name = "类型")
|
||||
private String type;
|
||||
private Integer type;
|
||||
/** 具体说明 */
|
||||
@Excel(name = "具体说明")
|
||||
private String content;
|
||||
@ -27,7 +29,7 @@ public class FeedbackVO {
|
||||
@Excel(name = "联系电话")
|
||||
private String phone;
|
||||
/** 创建人 */
|
||||
private Long createBy;
|
||||
private Long createBy;
|
||||
/** 创建时间 */
|
||||
private LocalDateTime createTime;
|
||||
/** 处理状态 0:未处理 1:已处理 */
|
||||
@ -40,4 +42,36 @@ public class FeedbackVO {
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Excel(name = "处理时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime handleTime;
|
||||
|
||||
@Schema(description ="反馈对象ID")
|
||||
@Excel(name = "反馈对象ID")
|
||||
private Long aimId;
|
||||
|
||||
@Schema(description ="反馈对象类型 0 会员 1 群组 2 评论 3 视频 4 聊天" )
|
||||
private Integer aimType;
|
||||
|
||||
|
||||
@Schema(description ="反馈对象")
|
||||
private Object aimObject;
|
||||
|
||||
@Schema(description ="反馈分类")
|
||||
private Integer category;
|
||||
|
||||
@Schema(description ="会员ID")
|
||||
@Excel(name = "会员ID")
|
||||
private Long memberId;
|
||||
|
||||
private MemberVO member;
|
||||
|
||||
@Schema(description ="处理人")
|
||||
@Excel(name = "处理人")
|
||||
private Long handlerId;
|
||||
|
||||
@Schema(description ="处理结果类型 0:文本 1:图片")
|
||||
@Excel(name = "处理结果类型 0:不予处理 1:已处理")
|
||||
private Integer resultType;
|
||||
|
||||
@Schema(description ="处理结果")
|
||||
@Excel(name = "处理结果")
|
||||
private String resultContent;
|
||||
}
|
||||
|
@ -0,0 +1,61 @@
|
||||
package com.wzj.soopin.member.domain.vo;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import org.dromara.common.core.domain.model.BaseAudit;
|
||||
import org.dromara.common.excel.annotation.Excel;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 会员账户表对象 ums_member_account
|
||||
*
|
||||
* @author zcc
|
||||
*/
|
||||
@Schema(description="会员账户变动记录")
|
||||
@Data
|
||||
public class MemberAccountChangeRecordVO extends BaseAudit {
|
||||
|
||||
private Long id;
|
||||
|
||||
@Schema(description ="MEMBER_ID")
|
||||
@TableId(value="member_id", type = IdType.ASSIGN_ID)
|
||||
private Long memberId;
|
||||
|
||||
|
||||
@Schema(description ="余额")
|
||||
@Excel(name = "余额")
|
||||
private BigDecimal moneyBalance;
|
||||
|
||||
|
||||
@Schema(description ="变动前余额")
|
||||
@Excel(name = "变动前余额")
|
||||
private BigDecimal beforeBalance;
|
||||
|
||||
@Schema(description ="变动后余额")
|
||||
@Excel(name = "变动后余额")
|
||||
private BigDecimal afterBalance;
|
||||
|
||||
|
||||
@Schema(description ="变动金额")
|
||||
|
||||
@Excel(name = "变动金额")
|
||||
private BigDecimal changeAmount;
|
||||
|
||||
@Schema(description ="变动类型")
|
||||
@Excel(name = "变动类型")
|
||||
private String changeType;
|
||||
|
||||
@Schema(description ="变动描述")
|
||||
@Excel(name = "变动描述")
|
||||
private String changeDesc;
|
||||
|
||||
@Schema(description ="来源")
|
||||
@Excel(name = "来源")
|
||||
private Integer source;
|
||||
|
||||
|
||||
}
|
@ -1,5 +1,6 @@
|
||||
package com.wzj.soopin.member.domain.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import org.dromara.common.excel.annotation.Excel;
|
||||
|
||||
@ -20,8 +21,18 @@ public class MemberAccountVO {
|
||||
/** 历史总共积分 */
|
||||
@Excel(name = "历史总共积分")
|
||||
private BigDecimal totalIntegralBalance;
|
||||
/** 修改时间 */
|
||||
private LocalDateTime updateTime;
|
||||
/** 创建时间 */
|
||||
private LocalDateTime createTime;
|
||||
|
||||
|
||||
@Schema(description ="余额")
|
||||
@Excel(name = "余额")
|
||||
private BigDecimal moneyBalance;
|
||||
|
||||
|
||||
@Schema(description ="钱包")
|
||||
@Excel(name = "钱包")
|
||||
private BigDecimal wallet;
|
||||
|
||||
@Schema(description ="营收")
|
||||
@Excel(name = "营收")
|
||||
private BigDecimal revenue;
|
||||
}
|
||||
|
@ -0,0 +1,27 @@
|
||||
package com.wzj.soopin.member.domain.vo;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import org.dromara.common.core.domain.model.BaseAudit;
|
||||
|
||||
/**
|
||||
* 黑名单
|
||||
*
|
||||
*/
|
||||
@Schema(description="黑名单")
|
||||
@Data
|
||||
public class MemberBlockVO extends BaseAudit {
|
||||
|
||||
@Schema(description ="ID")
|
||||
@TableId
|
||||
private Long id;
|
||||
|
||||
@Schema(description ="用户id")
|
||||
private Long memberId;
|
||||
|
||||
@Schema(description ="被拉黑人id")
|
||||
private Long blockMemberId;
|
||||
|
||||
}
|
@ -1,20 +1,19 @@
|
||||
package com.wzj.soopin.member.domain.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Data
|
||||
@ApiModel("会员下单数据统计对象")
|
||||
@Schema(description ="会员下单数据统计对象")
|
||||
public class MemberDataStatisticsVO {
|
||||
@ApiModelProperty("购物车数")
|
||||
@Schema(description ="购物车数")
|
||||
private Integer cartCount;
|
||||
@ApiModelProperty("订单数")
|
||||
@Schema(description ="订单数")
|
||||
private Integer orderCount;
|
||||
@ApiModelProperty("下单金额")
|
||||
@Schema(description ="下单金额")
|
||||
private BigDecimal orderAmount;
|
||||
@ApiModelProperty("售后数")
|
||||
@Schema(description ="售后数")
|
||||
private Integer aftersaleCount;
|
||||
}
|
||||
|
@ -1,83 +1,140 @@
|
||||
package com.wzj.soopin.member.domain.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import org.dromara.common.excel.annotation.Excel;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 会员信息 数据视图对象
|
||||
*
|
||||
* @author zcc
|
||||
*/
|
||||
@Data
|
||||
public class MemberVO {
|
||||
/** ID */
|
||||
@Schema(description = "会员信息")
|
||||
public class MemberVO {
|
||||
/** 会员唯一标识 ID */
|
||||
@Schema(description = "会员唯一标识 ID")
|
||||
private Long id;
|
||||
/** 昵称 */
|
||||
|
||||
/** 会员昵称 */
|
||||
@Excel(name = "昵称")
|
||||
@Schema(description = "会员昵称")
|
||||
private String nickname;
|
||||
/** 手机号 */
|
||||
|
||||
/** 会员手机号 */
|
||||
@Schema(description = "会员手机号")
|
||||
private String phone;
|
||||
/** 隐藏前三位后四位的手机号 */
|
||||
|
||||
/** 隐藏部分信息后的手机号(如:138****1234) */
|
||||
@Schema(description = "隐藏前三位后四位的手机号")
|
||||
private String phoneHidden;
|
||||
/** 用户备注 */
|
||||
|
||||
/** 用户备注信息 */
|
||||
@Excel(name = "用户备注")
|
||||
@Schema(description = "用户备注信息")
|
||||
private String mark;
|
||||
/** 帐号启用状态:0->禁用;1->启用 */
|
||||
|
||||
/** 帐号启用状态:0->禁用;1->启用 */
|
||||
@Excel(name = "帐号启用状态:0->禁用;1->启用")
|
||||
@Schema(description = "帐号启用状态:0->禁用;1->启用")
|
||||
private Integer status;
|
||||
/** 头像 */
|
||||
|
||||
/** 头像地址 */
|
||||
@Excel(name = "头像")
|
||||
@Schema(description = "头像地址")
|
||||
private String avatar;
|
||||
/** 性别:0->未知;1->男;2->女 */
|
||||
|
||||
/** 性别:0->未知;1->男;2->女 */
|
||||
@Excel(name = "性别:0->未知;1->男;2->女")
|
||||
@Schema(description = "性别:0->未知;1->男;2->女")
|
||||
private Integer gender;
|
||||
/** 用户所在城市 */
|
||||
|
||||
/** 用户所在城市名称 */
|
||||
@Excel(name = "用户所在城市")
|
||||
@Schema(description = "用户所在城市名称")
|
||||
private String city;
|
||||
/** 用户所在省份 */
|
||||
|
||||
/** 用户所在省份名称 */
|
||||
@Excel(name = "用户所在省份")
|
||||
@Schema(description = "用户所在省份名称")
|
||||
private String province;
|
||||
/** 用户所在国家 */
|
||||
|
||||
/** 用户所在国家名称 */
|
||||
@Excel(name = "用户所在国家")
|
||||
@Schema(description = "用户所在国家名称")
|
||||
private String country;
|
||||
/** 公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注 */
|
||||
|
||||
/** 公众号运营者对粉丝的备注 */
|
||||
@Excel(name = "公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注")
|
||||
@Schema(description = "公众号运营者对粉丝的备注")
|
||||
private String remark;
|
||||
/** 生日 */
|
||||
|
||||
/** 生日日期(格式:yyyy-MM-dd) */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
@Schema(description = "生日日期(格式:yyyy-MM-dd)")
|
||||
private LocalDate birthday;
|
||||
/** 推广员id */
|
||||
|
||||
/** 推广员用户 ID */
|
||||
@Excel(name = "推广员id")
|
||||
@Schema(description = "推广员用户 ID")
|
||||
private Long spreadUid;
|
||||
/** 推广员关联时间 */
|
||||
|
||||
|
||||
@Excel(name = "推广员二维码")
|
||||
@Schema(description = "推广员二维码")
|
||||
private String spreadCode;
|
||||
|
||||
/** 推广员关联时间(格式:yyyy-MM-dd HH:mm:ss) */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Excel(name = "推广员关联时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
@Schema(description = "推广员关联时间(格式:yyyy-MM-dd HH:mm:ss)")
|
||||
private LocalDateTime spreadTime;
|
||||
/** 等级 */
|
||||
|
||||
/** 会员等级 */
|
||||
@Excel(name = "等级")
|
||||
@Schema(description = "会员等级")
|
||||
private Integer level;
|
||||
/** 用户剩余积分 */
|
||||
|
||||
/** 用户剩余积分 */
|
||||
@Excel(name = "用户剩余积分")
|
||||
@Schema(description = "用户剩余积分")
|
||||
private BigDecimal integral;
|
||||
/** openId */
|
||||
|
||||
/** 微信 OpenID */
|
||||
@Excel(name = "openId")
|
||||
@Schema(description = "微信 OpenID")
|
||||
private String openId;
|
||||
|
||||
/** openId */
|
||||
/** 用户名 */
|
||||
@Excel(name = "userName")
|
||||
@Schema(description = "用户名")
|
||||
private String userName;
|
||||
|
||||
/** 视频数量 */
|
||||
@Schema(description = "视频数")
|
||||
@Excel(name = "视频数")
|
||||
private Integer vlogCount;
|
||||
@ApiModelProperty("im签名")
|
||||
@Excel(name = "im签名")
|
||||
|
||||
/** 粉丝数量 */
|
||||
@Schema(description = "粉丝数")
|
||||
@Excel(name = "粉丝数")
|
||||
private Integer fansCount;
|
||||
@ApiModelProperty("im签名")
|
||||
@Excel(name = "im签名")
|
||||
|
||||
/** 关注数量 */
|
||||
@Schema(description = "关注数")
|
||||
@Excel(name = "关注数")
|
||||
private Integer followCount;
|
||||
|
||||
/** 好友数量 */
|
||||
@Schema(description = "好友数")
|
||||
@Excel(name = "好友数")
|
||||
private Integer friendsCount;
|
||||
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,22 @@
|
||||
package com.wzj.soopin.member.enums;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 反馈对象类型枚举
|
||||
*/
|
||||
@Getter
|
||||
public enum FeedbackAimTypeEnums {
|
||||
MEMBER(0, "会员"),
|
||||
GROUP(1, "群组"),
|
||||
COMMENT(2, "评论"),
|
||||
VIDEO(3, "视频"),
|
||||
CHAT(4, "聊天");
|
||||
private final int code;
|
||||
private final String message;
|
||||
FeedbackAimTypeEnums(int code, String message) {
|
||||
this.code = code;
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
package com.wzj.soopin.member.enums;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 举报原因枚举
|
||||
*/
|
||||
@Getter
|
||||
public enum FeedbackReasonEnums {
|
||||
|
||||
OTHER(0, "其他"),
|
||||
|
||||
ABUSE(1, "辱骂"),
|
||||
|
||||
VIOLATION(2, "违反社区 Guidelines"),
|
||||
|
||||
SPAM(3, "垃圾信息"),
|
||||
|
||||
HARASSMENT(4, "骚扰"),
|
||||
|
||||
INAPPROPRIATE_CONTENT(5, "不恰当内容"),
|
||||
|
||||
INAPPROPRIATE_USERNAME(6, "不恰当用户名"),
|
||||
|
||||
INAPPROPRIATE_PROFILE_PICTURE(7, "不恰当头像"),
|
||||
|
||||
INAPPROPRIATE_BACKGROUND_PICTURE(8, "不恰当背景");
|
||||
|
||||
|
||||
private final int code;
|
||||
private final String message;
|
||||
|
||||
FeedbackReasonEnums(int code, String message) {
|
||||
this.code = code;
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
@ -15,8 +15,4 @@ import java.util.Map;
|
||||
public interface FansMapper extends BaseMapperPlus<Fans, FansVO> {
|
||||
public List<Map<String, Object>> getFollowedVlogerIds(@Param("currentUserId")String currentUserId,@Param("vlogerIds")List<String> vlogerIds);
|
||||
|
||||
/**
|
||||
* 根据vlogerId统计粉丝数量
|
||||
*/
|
||||
int countFansByVlogerId(@Param("vlogerId") String vlogerId);
|
||||
}
|
||||
|
@ -0,0 +1,18 @@
|
||||
package com.wzj.soopin.member.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.wzj.soopin.member.domain.po.MemberAccount;
|
||||
import com.wzj.soopin.member.domain.po.MemberAccountChangeRecord;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 会员账户表Mapper接口
|
||||
*
|
||||
* @author zcc
|
||||
*/
|
||||
public interface MemberAccountChangeRecordMapper extends BaseMapper<MemberAccountChangeRecord> {
|
||||
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
package com.wzj.soopin.member.mapper;
|
||||
|
||||
|
||||
import com.wzj.soopin.member.domain.po.MemberBlock;
|
||||
import com.wzj.soopin.member.domain.vo.MemberBlockVO;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
|
||||
public interface MemberBlockMapper extends BaseMapperPlus<MemberBlock, MemberBlockVO> {
|
||||
}
|
@ -9,27 +9,27 @@ public interface IFansService {
|
||||
/**
|
||||
* 关注
|
||||
*/
|
||||
public void doFollow(String myId, String vlogerId);
|
||||
public void doFollow(Long myId, Long vloggerId);
|
||||
|
||||
/**
|
||||
* 取关
|
||||
*/
|
||||
public void doCancel(String myId, String vlogerId);
|
||||
public void doCancel(Long myId, Long vloggerId);
|
||||
|
||||
/**
|
||||
* 查询用户是否关注博主
|
||||
*/
|
||||
public boolean queryDoIFollowVloger(String myId, String vlogerId);
|
||||
|
||||
public boolean queryDoIFollowVloger(Long myId, Long vloggerId);
|
||||
|
||||
public boolean queryDoIFollowVloger(String myId, String vloggerId);
|
||||
|
||||
/**
|
||||
* 查询我的粉丝列表
|
||||
*/
|
||||
public IPage<FansVO> queryMyFans(String myId,
|
||||
public IPage<FansVO> queryMyFans(Long myId,
|
||||
Integer page,
|
||||
Integer pageSize);
|
||||
|
||||
|
||||
// Integer countFansByVlogerId(String vlogerId);
|
||||
Long countFansByVloggerId(Long vloggerId);
|
||||
}
|
||||
|
@ -2,6 +2,11 @@ package com.wzj.soopin.member.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.wzj.soopin.member.domain.po.Feedback;
|
||||
import com.wzj.soopin.member.domain.vo.FeedbackVO;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
public interface IFeedbackService extends IService<Feedback> {
|
||||
|
||||
FeedbackVO selectById(Serializable id);
|
||||
}
|
||||
|
@ -0,0 +1,9 @@
|
||||
package com.wzj.soopin.member.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.wzj.soopin.member.domain.po.MemberAccount;
|
||||
import com.wzj.soopin.member.domain.po.MemberAccountChangeRecord;
|
||||
|
||||
public interface IMemberAccountChangeRecordService extends IService<MemberAccountChangeRecord> {
|
||||
|
||||
}
|
@ -2,6 +2,9 @@ package com.wzj.soopin.member.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.wzj.soopin.member.domain.po.MemberAccount;
|
||||
import com.wzj.soopin.member.domain.vo.MemberAccountVO;
|
||||
|
||||
public interface IMemberAccountService extends IService<MemberAccount> {
|
||||
|
||||
MemberAccount getMemberAccount(Long memberId);
|
||||
}
|
||||
|
@ -0,0 +1,15 @@
|
||||
package com.wzj.soopin.member.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.wzj.soopin.member.domain.po.MemberBlock;
|
||||
|
||||
public interface IMemberBlockService extends IService<MemberBlock> {
|
||||
|
||||
boolean hasBlocked(Long myId, Long vloggerId);
|
||||
|
||||
|
||||
boolean addBlock(Long myId, Long vloggerId);
|
||||
|
||||
void removeBlock(Long myId, Long vloggerId);
|
||||
|
||||
}
|
@ -1,16 +1,23 @@
|
||||
package com.wzj.soopin.member.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.wzj.soopin.member.domain.bo.MemberBO;
|
||||
import com.wzj.soopin.member.domain.form.ChangeMemberStatusForm;
|
||||
import com.wzj.soopin.member.domain.po.Member;
|
||||
import com.wzj.soopin.member.domain.vo.MemberVO;
|
||||
import org.dromara.common.core.constant.ResultCode;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface IMemberService extends IService<Member> {
|
||||
Integer changeStatus(ChangeMemberStatusForm dto);
|
||||
|
||||
int updateMark(Member member);
|
||||
|
||||
|
||||
|
||||
|
||||
Integer changeStatus(MemberBO dto);
|
||||
|
||||
int updateMark(MemberBO member);
|
||||
|
||||
boolean usernameExists(String username); // 确保这个方法在接口中定义
|
||||
|
||||
|
@ -31,20 +31,22 @@ public class FansServiceImpl extends ServiceImpl<FansMapper, Fans> implements IF
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public void doFollow(String myId, String vlogerId) {
|
||||
public void doFollow(Long myId, Long vloggerId) {
|
||||
|
||||
Fans fans = new Fans();
|
||||
fans.setFanId(myId);
|
||||
fans.setVlogerId(vlogerId);
|
||||
fans.setVloggerId(vloggerId);
|
||||
|
||||
// 判断对方是否关注我,如果关注我,那么双方都要互为朋友关系
|
||||
Fans vloger = queryFansRelationship(vlogerId, myId);
|
||||
Fans vloger = queryFansRelationship(vloggerId, myId);
|
||||
if (vloger != null) {
|
||||
fans.setIsFanFriendOfMine(YesOrNo.YES.type);
|
||||
vloger.setIsFanFriendOfMine(YesOrNo.YES.type);
|
||||
fans.setFriendFlag(YesOrNo.YES.type);
|
||||
fans.setBothFriend(YesOrNo.YES.type);
|
||||
vloger.setFriendFlag(YesOrNo.YES.type);
|
||||
vloger.setBothFriend(YesOrNo.YES.type);
|
||||
baseMapper.updateById(vloger);
|
||||
} else {
|
||||
fans.setIsFanFriendOfMine(YesOrNo.NO.type);
|
||||
fans.setFriendFlag(YesOrNo.NO.type);
|
||||
}
|
||||
baseMapper.insert(fans);
|
||||
|
||||
@ -55,9 +57,9 @@ public class FansServiceImpl extends ServiceImpl<FansMapper, Fans> implements IF
|
||||
// rabbitTemplate.convertAndSend(RabbitMQConfig.EXCHANGE_MSG, "sys.msg." + MessageEnum.FOLLOW_YOU.enValue, JsonUtils.objectToJson(messageMO));
|
||||
}
|
||||
|
||||
public Fans queryFansRelationship(String fanId, String vlogerId) {
|
||||
public Fans queryFansRelationship(Long fanId, Long vlogerId) {
|
||||
LambdaQueryWrapper<Fans> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(Fans::getVlogerId, vlogerId)
|
||||
queryWrapper.eq(Fans::getVloggerId, vlogerId)
|
||||
.eq(Fans::getFanId, fanId);
|
||||
|
||||
return baseMapper.selectOne(queryWrapper);
|
||||
@ -65,13 +67,13 @@ public class FansServiceImpl extends ServiceImpl<FansMapper, Fans> implements IF
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public void doCancel(String myId, String vlogerId) {
|
||||
public void doCancel(Long myId, Long vloggerId) {
|
||||
// 判断我们是否朋友关系,如果是,则需要取消双方的关系
|
||||
Fans fan = queryFansRelationship(myId, vlogerId);
|
||||
if (fan != null && fan.getIsFanFriendOfMine() == YesOrNo.YES.type) {
|
||||
Fans fan = queryFansRelationship(myId, vloggerId);
|
||||
if (fan != null && fan.getFriendFlag() == YesOrNo.YES.type) {
|
||||
// 抹除双方的朋友关系,自己的关系删除即可
|
||||
Fans pendingFan = queryFansRelationship(vlogerId, myId);
|
||||
pendingFan.setIsFanFriendOfMine(YesOrNo.NO.type);
|
||||
Fans pendingFan = queryFansRelationship(vloggerId, myId);
|
||||
pendingFan.setFriendFlag(YesOrNo.NO.type);
|
||||
baseMapper.updateById(pendingFan);
|
||||
}
|
||||
|
||||
@ -82,15 +84,19 @@ public class FansServiceImpl extends ServiceImpl<FansMapper, Fans> implements IF
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean queryDoIFollowVloger(String myId, String vlogerId) {
|
||||
Fans vloger = queryFansRelationship(myId, vlogerId);
|
||||
return vloger != null;
|
||||
public boolean queryDoIFollowVloger(Long myId, Long vloggerId) {
|
||||
Fans vlogger = queryFansRelationship(myId, vloggerId);
|
||||
return vlogger != null;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean queryDoIFollowVloger(String myId, String vloggerId) {
|
||||
Fans vlogger = queryFansRelationship(Long.valueOf(myId), Long.valueOf(vloggerId));
|
||||
return vlogger != null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<FansVO> queryMyFans(String myId, Integer pageNo, Integer pageSize) {
|
||||
public IPage<FansVO> queryMyFans(Long myId, Integer pageNo, Integer pageSize) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("myId", myId);
|
||||
// 查询粉丝列表
|
||||
@ -101,15 +107,15 @@ public class FansServiceImpl extends ServiceImpl<FansMapper, Fans> implements IF
|
||||
String relationship = redisCache.getCacheObject(
|
||||
CacheConstants.MEMBER_FANS + ":" + myId + ":" + f.getFanId());
|
||||
if (StringUtils.isNotBlank(relationship) && relationship.equalsIgnoreCase("1")) {
|
||||
f.setFriend(true);
|
||||
f.setFriendFlag(true);
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
// @Override
|
||||
// public Integer countFansByVlogerId(String vlogerId) {
|
||||
// return baseMapper.countFansByVlogerId(vlogerId);
|
||||
// }
|
||||
@Override
|
||||
public Long countFansByVloggerId(Long vloggerId) {
|
||||
return baseMapper.selectCount(new LambdaQueryWrapper<Fans>().eq(Fans::getVloggerId, vloggerId));
|
||||
}
|
||||
}
|
||||
|
@ -4,82 +4,99 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.wzj.soopin.member.convert.FeedbackConvert;
|
||||
import com.wzj.soopin.member.convert.MemberConvert;
|
||||
import com.wzj.soopin.member.domain.po.Feedback;
|
||||
import com.wzj.soopin.member.domain.bo.FeedbackBO;
|
||||
import com.wzj.soopin.member.domain.po.Member;
|
||||
import com.wzj.soopin.member.domain.vo.FeedbackVO;
|
||||
import com.wzj.soopin.member.mapper.FeedbackMapper;
|
||||
import com.wzj.soopin.member.mapper.MemberMapper;
|
||||
import com.wzj.soopin.member.service.IFeedbackService;
|
||||
import com.wzj.soopin.member.util.MemberCacheHelper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.dromara.common.redis.redis.RedisCache;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 意见反馈Service业务层处理
|
||||
*
|
||||
*
|
||||
* @author zcc
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor
|
||||
public class FeedbackServiceImpl extends ServiceImpl<FeedbackMapper, Feedback> implements IFeedbackService {
|
||||
|
||||
|
||||
private final MemberMapper memberMapper;
|
||||
|
||||
private final MemberConvert memberConvert;
|
||||
|
||||
private final FeedbackConvert feedbackConvert;
|
||||
|
||||
private final MemberCacheHelper memberCacheHelper;
|
||||
|
||||
|
||||
/**
|
||||
* 查询意见反馈列表
|
||||
*
|
||||
* @param query 查询条件
|
||||
* @param page 分页条件
|
||||
* @param page 分页条件
|
||||
* @return 意见反馈
|
||||
*/
|
||||
public IPage<Feedback> selectList(FeedbackBO query, IPage page) {
|
||||
|
||||
QueryWrapper<Feedback> qw = new QueryWrapper<>();
|
||||
String type = query.getType();
|
||||
if (!StringUtils.isEmpty(type)) {
|
||||
qw.eq("type", type);
|
||||
}
|
||||
String content = query.getContent();
|
||||
if (!StringUtils.isEmpty(content)) {
|
||||
qw.eq("content", content);
|
||||
}
|
||||
String images = query.getImages();
|
||||
if (!StringUtils.isEmpty(images)) {
|
||||
qw.eq("images", images);
|
||||
}
|
||||
String phone = query.getPhone();
|
||||
if (!StringUtils.isEmpty(phone)) {
|
||||
qw.eq("phone", phone);
|
||||
}
|
||||
Integer handleStatus = query.getHandleStatus();
|
||||
if (handleStatus != null) {
|
||||
qw.eq("handle_status", handleStatus);
|
||||
}
|
||||
LocalDateTime handleTime = query.getHandleTime();
|
||||
if (handleTime != null) {
|
||||
qw.eq("handle_time", handleTime);
|
||||
}
|
||||
if (!StringUtils.isEmpty(query.getBeginTime()) && !StringUtils.isEmpty(query.getEndTime())){
|
||||
qw.ge("create_time", query.getBeginTime());
|
||||
qw.lt("create_time", query.getEndTime());
|
||||
}
|
||||
qw.orderByDesc("id");
|
||||
return baseMapper.selectPage(page,qw);
|
||||
return baseMapper.selectPage(page, query.toWrapper());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public FeedbackVO selectById(Serializable id) {
|
||||
Feedback feedback = super.getById(id);
|
||||
|
||||
if (feedback == null) {
|
||||
return null;
|
||||
}
|
||||
FeedbackVO vo = feedbackConvert.toVO(feedback);
|
||||
//判断是投诉对象是什么类型
|
||||
if (feedback.getAimType() != null) {
|
||||
// 如果是人员,则取人员信息
|
||||
// 0 会员 1 群组 2 评论 3 视频 4 聊天
|
||||
switch (feedback.getAimType()) {
|
||||
case 0:
|
||||
Member member = memberMapper.selectById(feedback.getAimId());
|
||||
vo.setAimObject(memberConvert.toVO(member));
|
||||
break;
|
||||
}
|
||||
// 如果是订单,则取订单信息
|
||||
// 如果是视频,则取视频信息
|
||||
}
|
||||
|
||||
|
||||
//从redis中获取用户信息
|
||||
Member memberInfo = memberCacheHelper.getMemberInfo(feedback.getMemberId());
|
||||
vo.setMember(memberConvert.toVO(memberInfo));
|
||||
return vo;
|
||||
}
|
||||
|
||||
public Integer updateMark(Feedback feedback) {
|
||||
UpdateWrapper<Feedback> updateWrapper = new UpdateWrapper<>();
|
||||
updateWrapper.set("remark",feedback.getRemark())
|
||||
.eq("id",feedback.getId());
|
||||
return baseMapper.update(null,updateWrapper);
|
||||
updateWrapper.set("remark", feedback.getRemark())
|
||||
.eq("id", feedback.getId());
|
||||
return baseMapper.update(null, updateWrapper);
|
||||
}
|
||||
|
||||
public Integer changeStatus(Feedback dto) {
|
||||
UpdateWrapper<Feedback> wrapper = new UpdateWrapper<>();
|
||||
wrapper.eq("id", dto.getId());
|
||||
wrapper.set("handle_status", dto.getHandleStatus())
|
||||
.set("handle_time",LocalDateTime.now());
|
||||
wrapper.set("handle_status", dto.getStatus())
|
||||
.set("handle_time", LocalDateTime.now());
|
||||
return baseMapper.update(null, wrapper);
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,31 @@
|
||||
package com.wzj.soopin.member.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.wzj.soopin.member.domain.bo.MemberAccountBO;
|
||||
import com.wzj.soopin.member.domain.po.MemberAccount;
|
||||
import com.wzj.soopin.member.domain.po.MemberAccountChangeRecord;
|
||||
import com.wzj.soopin.member.mapper.MemberAccountChangeRecordMapper;
|
||||
import com.wzj.soopin.member.mapper.MemberAccountMapper;
|
||||
import com.wzj.soopin.member.service.IMemberAccountChangeRecordService;
|
||||
import com.wzj.soopin.member.service.IMemberAccountService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 会员账户表Service业务层处理
|
||||
*
|
||||
*
|
||||
* @author zcc
|
||||
*/
|
||||
@Service
|
||||
public class MemberAccountChangeRecordServiceImpl extends
|
||||
ServiceImpl<MemberAccountChangeRecordMapper, MemberAccountChangeRecord> implements IMemberAccountChangeRecordService {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.wzj.soopin.member.domain.po.MemberAccount;
|
||||
import com.wzj.soopin.member.domain.bo.MemberAccountBO;
|
||||
import com.wzj.soopin.member.domain.vo.MemberAccountVO;
|
||||
import com.wzj.soopin.member.mapper.MemberAccountMapper;
|
||||
import com.wzj.soopin.member.service.IMemberAccountService;
|
||||
import org.springframework.stereotype.Service;
|
||||
@ -20,14 +21,10 @@ import java.math.BigDecimal;
|
||||
@Service
|
||||
public class MemberAccountServiceImpl extends ServiceImpl<MemberAccountMapper,MemberAccount> implements IMemberAccountService {
|
||||
|
||||
/**
|
||||
* 查询会员账户表
|
||||
*
|
||||
* @param memberId 会员账户表主键
|
||||
* @return 会员账户表
|
||||
*/
|
||||
public MemberAccount selectByMemberId(Long memberId) {
|
||||
return baseMapper.selectById(memberId);
|
||||
|
||||
@Override
|
||||
public MemberAccount getMemberAccount(Long memberId) {
|
||||
return baseMapper.selectOne(new QueryWrapper<MemberAccount>().lambda().eq(MemberAccount::getMemberId,memberId));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -0,0 +1,56 @@
|
||||
package com.wzj.soopin.member.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.wzj.soopin.member.convert.FeedbackConvert;
|
||||
import com.wzj.soopin.member.convert.MemberConvert;
|
||||
import com.wzj.soopin.member.domain.bo.FeedbackBO;
|
||||
import com.wzj.soopin.member.domain.po.Feedback;
|
||||
import com.wzj.soopin.member.domain.po.Member;
|
||||
import com.wzj.soopin.member.domain.po.MemberBlock;
|
||||
import com.wzj.soopin.member.domain.vo.FeedbackVO;
|
||||
import com.wzj.soopin.member.mapper.FeedbackMapper;
|
||||
import com.wzj.soopin.member.mapper.MemberBlockMapper;
|
||||
import com.wzj.soopin.member.mapper.MemberMapper;
|
||||
import com.wzj.soopin.member.service.IFeedbackService;
|
||||
import com.wzj.soopin.member.service.IMemberBlockService;
|
||||
import com.wzj.soopin.member.util.MemberCacheHelper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 意见反馈Service业务层处理
|
||||
*
|
||||
* @author zcc
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor
|
||||
public class MemberBlockServiceImpl extends ServiceImpl<MemberBlockMapper, MemberBlock> implements IMemberBlockService {
|
||||
|
||||
|
||||
@Override
|
||||
public boolean hasBlocked(Long myId, Long vloggerId) {
|
||||
return this.count(new UpdateWrapper<MemberBlock>()
|
||||
.eq("member_id", myId)
|
||||
.eq("block_member_id", vloggerId)) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean addBlock(Long myId, Long vloggerId) {
|
||||
return this.save( MemberBlock.builder().memberId(myId).blockMemberId(vloggerId).build());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void removeBlock(Long myId, Long vloggerId) {
|
||||
baseMapper.delete(new UpdateWrapper<MemberBlock>()
|
||||
.eq("member_id", myId)
|
||||
.eq("block_member_id", vloggerId));
|
||||
}
|
||||
}
|
@ -6,8 +6,11 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.wzj.soopin.member.domain.bo.MemberBO;
|
||||
import com.wzj.soopin.member.domain.form.ChangeMemberStatusForm;
|
||||
import com.wzj.soopin.member.domain.po.Member;
|
||||
import com.wzj.soopin.member.domain.po.MemberAccount;
|
||||
import com.wzj.soopin.member.mapper.MemberAccountMapper;
|
||||
import com.wzj.soopin.member.mapper.MemberCartMapper;
|
||||
import com.wzj.soopin.member.mapper.MemberMapper;
|
||||
import com.wzj.soopin.member.service.IMemberService;
|
||||
@ -45,11 +48,24 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper,Member> implemen
|
||||
|
||||
private final RedisCache redisCache;
|
||||
|
||||
private final MemberAccountMapper memberAccountMapper;
|
||||
|
||||
@Override
|
||||
public boolean usernameExists(String username) {
|
||||
return baseMapper.countByUsername(username) > 0; // 确保实现
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean save(Member entity) {
|
||||
super.save(entity);
|
||||
|
||||
MemberAccount account=MemberAccount.builder().memberId(entity.getId()).build();
|
||||
memberAccountMapper.insert(account);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Member findByUsername(String userName) {
|
||||
QueryWrapper<Member> queryWrapper = new QueryWrapper<>();
|
||||
@ -69,7 +85,7 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper,Member> implemen
|
||||
return true;
|
||||
}
|
||||
|
||||
public int updateMark(Member member) {
|
||||
public int updateMark(MemberBO member) {
|
||||
UpdateWrapper<Member> updateWrapper = new UpdateWrapper<>();
|
||||
updateWrapper.set("mark",member.getMark())
|
||||
.set("update_time",LocalDateTime.now())
|
||||
@ -79,10 +95,10 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper,Member> implemen
|
||||
|
||||
|
||||
|
||||
public Integer changeStatus(ChangeMemberStatusForm dto) {
|
||||
public Integer changeStatus(MemberBO bo) {
|
||||
UpdateWrapper<Member> wrapper = new UpdateWrapper<>();
|
||||
wrapper.eq("id", dto.getMemberId());
|
||||
wrapper.set("status", dto.getStatus());
|
||||
wrapper.eq("id", bo.getId());
|
||||
wrapper.set("status", bo.getStatus());
|
||||
return baseMapper.update(null, wrapper);
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,33 @@
|
||||
package com.wzj.soopin.member.util;
|
||||
|
||||
import com.wzj.soopin.member.domain.po.Member;
|
||||
import com.wzj.soopin.member.mapper.MemberMapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.common.redis.redis.RedisCache;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Component
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor
|
||||
public class MemberCacheHelper {
|
||||
|
||||
public static final String MEMBER_INFO_CACHE = "member:info:";
|
||||
|
||||
public static final String MEMBER_ACCOUNT_CACHE = "member:account:";
|
||||
|
||||
private final RedisCache redisCache;
|
||||
|
||||
private final MemberMapper memberMapper;
|
||||
|
||||
|
||||
public Member getMemberInfo(Long memberId) {
|
||||
Member member= redisCache.getCacheObject(MEMBER_INFO_CACHE + memberId);
|
||||
if(member==null){
|
||||
member=memberMapper.selectById(memberId);
|
||||
redisCache.setCacheObject(MEMBER_INFO_CACHE + memberId,member);
|
||||
}
|
||||
return member;
|
||||
}
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||
<mapper namespace="com.wzj.soopin.member.mapper.MemberAccountChangeRecordMapper" >
|
||||
|
||||
</mapper>
|
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||
<mapper namespace="com.wzj.soopin.member.mapper.MemberBlockMapper" >
|
||||
|
||||
</mapper>
|
@ -97,18 +97,7 @@
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-sse</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.swagger</groupId>
|
||||
<artifactId>swagger-annotations</artifactId>
|
||||
<version>1.6.2</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>com.github.pagehelper</groupId>-->
|
||||
<!-- <artifactId>pagehelper</artifactId>-->
|
||||
<!-- <version>5.3.2</version>-->
|
||||
<!-- <scope>compile</scope>-->
|
||||
<!-- </dependency>-->
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-member</artifactId>
|
||||
|
@ -57,7 +57,7 @@ public class OrderController extends BaseController {
|
||||
|
||||
|
||||
|
||||
@ApiOperation("查询订单售后列表")
|
||||
@ApiOperation("查询订单列表")
|
||||
@PostMapping("/list")
|
||||
public R<Page<OrderVO>> list(@RequestBody OrderBo query, Page<Order> page) {
|
||||
Page<Order> list = service.page(page,query.toWrapper() );
|
||||
|
@ -52,7 +52,7 @@ public class OrderDeliveryHistoryController extends BaseController {
|
||||
// return ResponseEntity.ok(new PageImpl<>(list, page, ((com.github.pagehelper.Page)list).getTotal()));
|
||||
// }
|
||||
|
||||
@ApiOperation("查询订单表列表")
|
||||
@ApiOperation("查询订单发货列表")
|
||||
@PostMapping("/list")
|
||||
public R<IPage<OrderDeliveryHistoryVO>> list(@RequestBody OrderDeliveryHistoryBo query, Page<OrderDeliveryHistory> page) {
|
||||
Page<OrderDeliveryHistory> list = historyService.page(page,query.toWrapper() );
|
||||
|
@ -24,7 +24,8 @@ public class OrderItem extends BaseAudit {
|
||||
@ApiModelProperty("ID")
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
private Long id;
|
||||
|
||||
@Excel(name = "商家备注")
|
||||
private String merchantNote;
|
||||
@ApiModelProperty("订单id")
|
||||
@Excel(name = "订单id")
|
||||
private Long orderId;
|
||||
|
@ -31,6 +31,7 @@ public class OrderVO extends BaseAudit {
|
||||
/** 用户帐号 */
|
||||
@Excel(name = "用户帐号")
|
||||
private String memberUsername;
|
||||
|
||||
/** 商家备注 */
|
||||
@Excel(name = "商家备注")
|
||||
private String merchantNote;
|
||||
|
Loading…
x
Reference in New Issue
Block a user