用户列表 新增参数
This commit is contained in:
14
src/main/java/com/sqx/modules/app/dto/UserInviteDTO.java
Normal file
14
src/main/java/com/sqx/modules/app/dto/UserInviteDTO.java
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
package com.sqx.modules.app.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author GYJoker
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class UserInviteDTO {
|
||||||
|
private String userId;
|
||||||
|
private BigDecimal inviteAmount;
|
||||||
|
}
|
||||||
@@ -188,6 +188,11 @@ public class UserEntity implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private BigDecimal inviteAmount;
|
private BigDecimal inviteAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计邀请人数
|
||||||
|
*/
|
||||||
|
private Integer inviteCount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否是新用户 1否
|
* 是否是新用户 1否
|
||||||
*/
|
*/
|
||||||
@@ -212,6 +217,9 @@ public class UserEntity implements Serializable {
|
|||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private Integer vipType;
|
private Integer vipType;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
private Integer cashCount;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
private BigDecimal cashAmount;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,4 +60,13 @@ public class UserMoney implements Serializable {
|
|||||||
private BigDecimal inviteIncomeMoney;;
|
private BigDecimal inviteIncomeMoney;;
|
||||||
private BigDecimal inviteIncomeCoin;
|
private BigDecimal inviteIncomeCoin;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计提现金额
|
||||||
|
*/
|
||||||
|
private BigDecimal cashAmount;
|
||||||
|
/**
|
||||||
|
* 累计提现次数
|
||||||
|
*/
|
||||||
|
private Integer cashCount;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,10 +5,7 @@ import com.alibaba.fastjson.JSONObject;
|
|||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.sqx.common.utils.PageUtils;
|
import com.sqx.common.utils.PageUtils;
|
||||||
import com.sqx.common.utils.Result;
|
import com.sqx.common.utils.Result;
|
||||||
import com.sqx.modules.app.dto.AuthCertNoDTO;
|
import com.sqx.modules.app.dto.*;
|
||||||
import com.sqx.modules.app.dto.AuthDTO;
|
|
||||||
import com.sqx.modules.app.dto.LoginDTO;
|
|
||||||
import com.sqx.modules.app.dto.RegisterDTO;
|
|
||||||
import com.sqx.modules.app.entity.UserEntity;
|
import com.sqx.modules.app.entity.UserEntity;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
@@ -234,4 +231,8 @@ public interface UserService extends IService<UserEntity> {
|
|||||||
UserEntity queryByInvitationCodeOrUserId(Long inviterUserId, String invitationCode);
|
UserEntity queryByInvitationCodeOrUserId(Long inviterUserId, String invitationCode);
|
||||||
|
|
||||||
Result register(RegisterDTO registerDTO);
|
Result register(RegisterDTO registerDTO);
|
||||||
|
|
||||||
|
Result updateUserInviteAmount(UserInviteDTO userInviteDTO);
|
||||||
|
|
||||||
|
Result removeUserBlack(Long userId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1758,4 +1758,41 @@ public class UserServiceImpl extends ServiceImpl<UserDao, UserEntity> implements
|
|||||||
|
|
||||||
return baseMapper.selectOne(new LambdaQueryWrapper<UserEntity>().eq(UserEntity::getUserId, inviterUserId));
|
return baseMapper.selectOne(new LambdaQueryWrapper<UserEntity>().eq(UserEntity::getUserId, inviterUserId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Result updateUserInviteAmount(UserInviteDTO userInviteDTO) {
|
||||||
|
if (StrUtil.isBlank(userInviteDTO.getUserId())) {
|
||||||
|
return Result.error("用户id不能为空");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (userInviteDTO.getInviteAmount() == null || userInviteDTO.getInviteAmount().compareTo(BigDecimal.ZERO) <= 0) {
|
||||||
|
return Result.error("邀请奖励金额必须大于0");
|
||||||
|
}
|
||||||
|
|
||||||
|
UserEntity userEntity = baseMapper.selectById(userInviteDTO.getUserId());
|
||||||
|
if (userEntity == null) {
|
||||||
|
return Result.error("用户不存在");
|
||||||
|
}
|
||||||
|
userEntity.setInviteAmount(userInviteDTO.getInviteAmount());
|
||||||
|
|
||||||
|
baseMapper.update(userEntity, new LambdaUpdateWrapper<UserEntity>().eq(UserEntity::getUserId, userInviteDTO.getUserId()));
|
||||||
|
|
||||||
|
return Result.success("更新成功");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Result removeUserBlack(Long userId) {
|
||||||
|
UserEntity userEntity = getById(userId);
|
||||||
|
if (userEntity == null) {
|
||||||
|
return Result.error("用户不存在");
|
||||||
|
}
|
||||||
|
userEntity.setStatus(1);
|
||||||
|
update(userEntity, new LambdaUpdateWrapper<UserEntity>().eq(UserEntity::getUserId, userId));
|
||||||
|
|
||||||
|
UserInfo userInfo = userInfoService.getOne(new LambdaQueryWrapper<UserInfo>().eq(UserInfo::getUserId, userId));
|
||||||
|
if (userInfo != null && StrUtil.isNotBlank(userInfo.getCertNo())) {
|
||||||
|
tbUserBlacklistMapper.delete(new LambdaQueryWrapper<TbUserBlacklist>().eq(TbUserBlacklist::getIdCardNo, userInfo.getCertNo()));
|
||||||
|
}
|
||||||
|
return Result.success("解除拉黑成功");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -214,6 +214,7 @@ public class InviteServiceImpl extends ServiceImpl<InviteDao, Invite> implements
|
|||||||
user.setUserId(userId);
|
user.setUserId(userId);
|
||||||
user.setInviterCode(userEntity.getInvitationCode());
|
user.setInviterCode(userEntity.getInvitationCode());
|
||||||
user.setInviterUserId(userEntity.getUserId());
|
user.setInviterUserId(userEntity.getUserId());
|
||||||
|
user.setInviteCount((userEntity.getInviteCount() == null ? 0 : userEntity.getInviteCount()) + 1);
|
||||||
userService.updateById(user);
|
userService.updateById(user);
|
||||||
|
|
||||||
// 金币
|
// 金币
|
||||||
|
|||||||
@@ -5,12 +5,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
|||||||
import com.sqx.modules.pay.entity.CashOut;
|
import com.sqx.modules.pay.entity.CashOut;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
import org.apache.ibatis.annotations.Select;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author fang
|
* @author fang
|
||||||
@@ -52,4 +50,7 @@ public interface CashOutDao extends BaseMapper<CashOut> {
|
|||||||
List<CashOut> countByUserIdList(Set<Long> userIdList);
|
List<CashOut> countByUserIdList(Set<Long> userIdList);
|
||||||
|
|
||||||
Double queryUserTodayCashOutSum(@Param("userId") Long userId, @Param("time") String time);
|
Double queryUserTodayCashOutSum(@Param("userId") Long userId, @Param("time") String time);
|
||||||
|
|
||||||
|
@Select("select count(1) as totalCount, sum(money) as totalAmount from cash_out where user_id=#{userId}")
|
||||||
|
Map<String, Object> getUserCashInfo(@Param("userId") Long userId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.sqx.modules.pay.service.impl;
|
|||||||
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.sqx.modules.app.entity.UserMoney;
|
||||||
import com.sqx.modules.app.entity.UserMoneyDetails;
|
import com.sqx.modules.app.entity.UserMoneyDetails;
|
||||||
import com.sqx.modules.app.service.UserMoneyDetailsService;
|
import com.sqx.modules.app.service.UserMoneyDetailsService;
|
||||||
import com.sqx.modules.app.service.UserMoneyService;
|
import com.sqx.modules.app.service.UserMoneyService;
|
||||||
@@ -85,6 +86,14 @@ public class WuyouCallbackServiceImpl implements WuyouCallbackService {
|
|||||||
cashOut.setOutAt(DateUtil.now());
|
cashOut.setOutAt(DateUtil.now());
|
||||||
cashOutDao.update(cashOut, new LambdaQueryWrapper<CashOut>().eq(CashOut::getUserId, cashOut.getUserId()).eq(CashOut::getId, cashOut.getId()));
|
cashOutDao.update(cashOut, new LambdaQueryWrapper<CashOut>().eq(CashOut::getUserId, cashOut.getUserId()).eq(CashOut::getId, cashOut.getId()));
|
||||||
|
|
||||||
|
UserMoney one = userMoneyService.getOne(new LambdaQueryWrapper<UserMoney>().eq(UserMoney::getUserId, cashOut.getUserId()));
|
||||||
|
if (one != null) {
|
||||||
|
one.setCashCount(one.getCashCount() + 1);
|
||||||
|
one.setCashAmount((one.getCashAmount() == null ? BigDecimal.ZERO : one.getCashAmount().add(money)));
|
||||||
|
|
||||||
|
userMoneyService.update(one, new LambdaQueryWrapper<UserMoney>().eq(UserMoney::getUserId, cashOut.getUserId()));
|
||||||
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
219
src/main/resources/application-test.yml
Normal file
219
src/main/resources/application-test.yml
Normal file
@@ -0,0 +1,219 @@
|
|||||||
|
swagger:
|
||||||
|
enabled: false
|
||||||
|
pay:
|
||||||
|
h5BaseUrl: https://dj-h5.hnsiyao.cn/me/detail/detail?allId=
|
||||||
|
orderNotifyUrl: https://pay.hnsiyao.cn/czg/app/wuyou/notify
|
||||||
|
extractNotifyUrl: https://pay.hnsiyao.cn/czg/app/wuyou/extractNotify
|
||||||
|
|
||||||
|
|
||||||
|
server:
|
||||||
|
port: 8200
|
||||||
|
|
||||||
|
nsq:
|
||||||
|
address: 47.122.26.160
|
||||||
|
port:
|
||||||
|
produce: 4150
|
||||||
|
consumer: 4161
|
||||||
|
|
||||||
|
# 数据源的一些配置
|
||||||
|
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||||
|
# 最小空闲连接,默认值10,小于0或大于maximum-pool-size,都会重置为maximum-pool-size
|
||||||
|
minimum-idle: 5
|
||||||
|
# 最大连接数,小于等于0会被重置为默认值10;大于零小于1会被重置为minimum-idle的值
|
||||||
|
maximum-pool-size: 15
|
||||||
|
# 空闲连接超时时间,默认值600000(10分钟),大于等于max-lifetime且max-lifetime>0,会被重置为0;不等于0且小于10秒,会被重置为10秒。
|
||||||
|
idle-timeout: 20000
|
||||||
|
# 连接最大存活时间.不等于0且小于30秒,会被重置为默认值30分钟.设置应该比mysql设置的超时时间短
|
||||||
|
max-lifetime: 30000
|
||||||
|
# 连接超时时间:毫秒,小于250毫秒,否则被重置为默认值30秒
|
||||||
|
connection-timeout: 30000
|
||||||
|
|
||||||
|
spring:
|
||||||
|
redis:
|
||||||
|
open: true # 是否开启redis缓存 true开启 false关闭
|
||||||
|
database: 0
|
||||||
|
host: 47.122.73.144 # Redis服务器地址
|
||||||
|
port: 6379
|
||||||
|
password: 222222 # 密码(默认为空)
|
||||||
|
timeout: 6000ms # 连接超时时长(毫秒)
|
||||||
|
jedis:
|
||||||
|
pool:
|
||||||
|
max-active: 1000 # 连接池最大连接数(使用负值表示没有限制)
|
||||||
|
max-wait: -1ms # 连接池最大阻塞等待时间(使用负值表示没有限制)
|
||||||
|
max-idle: 10 # 连接池中的最大空闲连接
|
||||||
|
min-idle: 5 # 连接池中的最小空闲连接
|
||||||
|
# sharding-jdbc 配置
|
||||||
|
shardingsphere:
|
||||||
|
# 显示sharding-jdbc改写的sql语句
|
||||||
|
show-sql: false
|
||||||
|
|
||||||
|
center-tables-data-node: duanju.%s
|
||||||
|
# 区域表的数据源节点
|
||||||
|
region-tables-data-node: duanju-$->{0..4}.%s
|
||||||
|
# 区域分库策略的计算字段
|
||||||
|
region-tables-sharding-database-column: user_id
|
||||||
|
# 分库的计算方法
|
||||||
|
region-tables-sharding-database-algorithm: duanju-$->{user_id % 5}
|
||||||
|
|
||||||
|
# 短剧集表 拆分
|
||||||
|
course_details-sharding-database-column: course_id
|
||||||
|
course_details-sharding-database-algorithm: duanju-$->{course_id % 5}
|
||||||
|
# 数据源名称
|
||||||
|
datasource:
|
||||||
|
duanju:
|
||||||
|
driver-class-name: ${driver-class-name}
|
||||||
|
jdbc-url: jdbc:mysql://rm-gc712o11yndj78x6a6o.mysql.cn-chengdu.rds.aliyuncs.com/duanju?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=CTT
|
||||||
|
username: video_user
|
||||||
|
password: VideoUser@1
|
||||||
|
minimum-idle: ${minimum-idle}
|
||||||
|
maximum-pool-size: ${maximum-pool-size}
|
||||||
|
idle-timeout: ${idle-timeout}
|
||||||
|
max-lifetime: ${max-lifetime}
|
||||||
|
connection-timeout: ${connection-timeout}
|
||||||
|
# 数据源配置begin
|
||||||
|
duanju-0:
|
||||||
|
driver-class-name: ${driver-class-name}
|
||||||
|
jdbc-url: jdbc:mysql://rm-gc712o11yndj78x6a6o.mysql.cn-chengdu.rds.aliyuncs.com/duanju-0?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=CTT
|
||||||
|
username: video_user
|
||||||
|
password: VideoUser@1
|
||||||
|
minimum-idle: ${minimum-idle}
|
||||||
|
maximum-pool-size: ${maximum-pool-size}
|
||||||
|
idle-timeout: ${idle-timeout}
|
||||||
|
max-lifetime: ${max-lifetime}
|
||||||
|
connection-timeout: ${connection-timeout}
|
||||||
|
duanju-1:
|
||||||
|
driver-class-name: ${driver-class-name}
|
||||||
|
jdbc-url: jdbc:mysql://rm-gc712o11yndj78x6a6o.mysql.cn-chengdu.rds.aliyuncs.com/duanju-1?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=CTT
|
||||||
|
username: video_user
|
||||||
|
password: VideoUser@1
|
||||||
|
minimum-idle: ${minimum-idle}
|
||||||
|
maximum-pool-size: ${maximum-pool-size}
|
||||||
|
idle-timeout: ${idle-timeout}
|
||||||
|
max-lifetime: ${max-lifetime}
|
||||||
|
connection-timeout: ${connection-timeout}
|
||||||
|
duanju-2:
|
||||||
|
driver-class-name: ${driver-class-name}
|
||||||
|
jdbc-url: jdbc:mysql://rm-gc712o11yndj78x6a6o.mysql.cn-chengdu.rds.aliyuncs.com/duanju-2?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=CTT
|
||||||
|
username: video_user
|
||||||
|
password: VideoUser@1
|
||||||
|
minimum-idle: ${minimum-idle}
|
||||||
|
maximum-pool-size: ${maximum-pool-size}
|
||||||
|
idle-timeout: ${idle-timeout}
|
||||||
|
max-lifetime: ${max-lifetime}
|
||||||
|
connection-timeout: ${connection-timeout}
|
||||||
|
duanju-3:
|
||||||
|
driver-class-name: ${driver-class-name}
|
||||||
|
jdbc-url: jdbc:mysql://rm-gc712o11yndj78x6a6o.mysql.cn-chengdu.rds.aliyuncs.com/duanju-3?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=CTT
|
||||||
|
username: video_user
|
||||||
|
password: VideoUser@1
|
||||||
|
minimum-idle: ${minimum-idle}
|
||||||
|
maximum-pool-size: ${maximum-pool-size}
|
||||||
|
idle-timeout: ${idle-timeout}
|
||||||
|
max-lifetime: ${max-lifetime}
|
||||||
|
connection-timeout: ${connection-timeout}
|
||||||
|
duanju-4:
|
||||||
|
driver-class-name: ${driver-class-name}
|
||||||
|
jdbc-url: jdbc:mysql://rm-gc712o11yndj78x6a6o.mysql.cn-chengdu.rds.aliyuncs.com/duanju-4?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=CTT
|
||||||
|
username: video_user
|
||||||
|
password: VideoUser@1
|
||||||
|
minimum-idle: ${minimum-idle}
|
||||||
|
maximum-pool-size: ${maximum-pool-size}
|
||||||
|
idle-timeout: ${idle-timeout}
|
||||||
|
max-lifetime: ${max-lifetime}
|
||||||
|
connection-timeout: ${connection-timeout}
|
||||||
|
|
||||||
|
# duanju-slave:
|
||||||
|
# driver-class-name: ${driver-class-name}
|
||||||
|
# jdbc-url: jdbc:mysql://47.122.30.120:3306/duanju?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=CTT
|
||||||
|
# username: root
|
||||||
|
# password: VideoUser1@
|
||||||
|
# minimum-idle: ${minimum-idle}
|
||||||
|
# maximum-pool-size: ${maximum-pool-size}
|
||||||
|
# idle-timeout: ${idle-timeout}
|
||||||
|
# max-lifetime: ${max-lifetime}
|
||||||
|
# connection-timeout: ${connection-timeout}
|
||||||
|
# duanju-slave-0:
|
||||||
|
# driver-class-name: ${driver-class-name}
|
||||||
|
# jdbc-url: jdbc:mysql://47.122.30.120:3306/duanju-0?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=CTT
|
||||||
|
# username: root
|
||||||
|
# password: VideoUser1@
|
||||||
|
# minimum-idle: ${minimum-idle}
|
||||||
|
# maximum-pool-size: ${maximum-pool-size}
|
||||||
|
# idle-timeout: ${idle-timeout}
|
||||||
|
# max-lifetime: ${max-lifetime}
|
||||||
|
# connection-timeout: ${connection-timeout}
|
||||||
|
# duanju-slave-1:
|
||||||
|
# driver-class-name: ${driver-class-name}
|
||||||
|
# jdbc-url: jdbc:mysql://47.122.30.120:3306/duanju-1?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=CTT
|
||||||
|
# username: root
|
||||||
|
# password: VideoUser1@
|
||||||
|
# minimum-idle: ${minimum-idle}
|
||||||
|
# maximum-pool-size: ${maximum-pool-size}
|
||||||
|
# idle-timeout: ${idle-timeout}
|
||||||
|
# max-lifetime: ${max-lifetime}
|
||||||
|
# connection-timeout: ${connection-timeout}
|
||||||
|
# duanju-slave-2:
|
||||||
|
# driver-class-name: ${driver-class-name}
|
||||||
|
# jdbc-url: jdbc:mysql://47.122.30.120:3306/duanju-2?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=CTT
|
||||||
|
# username: root
|
||||||
|
# password: VideoUser1@
|
||||||
|
# minimum-idle: ${minimum-idle}
|
||||||
|
# maximum-pool-size: ${maximum-pool-size}
|
||||||
|
# idle-timeout: ${idle-timeout}
|
||||||
|
# max-lifetime: ${max-lifetime}
|
||||||
|
# connection-timeout: ${connection-timeout}
|
||||||
|
# duanju-slave-3:
|
||||||
|
# driver-class-name: ${driver-class-name}
|
||||||
|
# jdbc-url: jdbc:mysql://47.122.30.120:3306/duanju-3?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=CTT
|
||||||
|
# username: root
|
||||||
|
# password: VideoUser1@
|
||||||
|
# minimum-idle: ${minimum-idle}
|
||||||
|
# maximum-pool-size: ${maximum-pool-size}
|
||||||
|
# idle-timeout: ${idle-timeout}
|
||||||
|
# max-lifetime: ${max-lifetime}
|
||||||
|
# connection-timeout: ${connection-timeout}
|
||||||
|
# duanju-slave-4:
|
||||||
|
# driver-class-name: ${driver-class-name}
|
||||||
|
# jdbc-url: jdbc:mysql://47.122.30.120:3306/duanju-4?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=CTT
|
||||||
|
# username: root
|
||||||
|
# password: VideoUser1@
|
||||||
|
# minimum-idle: ${minimum-idle}
|
||||||
|
# maximum-pool-size: ${maximum-pool-size}
|
||||||
|
# idle-timeout: ${idle-timeout}
|
||||||
|
# max-lifetime: ${max-lifetime}
|
||||||
|
# connection-timeout: ${connection-timeout}
|
||||||
|
# 数据源配置end
|
||||||
|
|
||||||
|
# 读写分离配置begin
|
||||||
|
master-slave-rules:
|
||||||
|
#数据源
|
||||||
|
duanju:
|
||||||
|
masterDataSourceName: duanju
|
||||||
|
slaveDataSourceNames:
|
||||||
|
- duanju
|
||||||
|
# - duanju-slave
|
||||||
|
duanju-0:
|
||||||
|
masterDataSourceName: duanju-0
|
||||||
|
slaveDataSourceNames:
|
||||||
|
- duanju-0
|
||||||
|
# - duanju-slave-0
|
||||||
|
duanju-1:
|
||||||
|
masterDataSourceName: duanju-1
|
||||||
|
slaveDataSourceNames:
|
||||||
|
- duanju-1
|
||||||
|
# - duanju-slave-1
|
||||||
|
duanju-2:
|
||||||
|
masterDataSourceName: duanju-2
|
||||||
|
slaveDataSourceNames:
|
||||||
|
- duanju-2
|
||||||
|
# - duanju-slave-2
|
||||||
|
duanju-3:
|
||||||
|
masterDataSourceName: duanju-3
|
||||||
|
slaveDataSourceNames:
|
||||||
|
- duanju-3
|
||||||
|
# - duanju-slave-3
|
||||||
|
duanju-4:
|
||||||
|
masterDataSourceName: duanju-4
|
||||||
|
slaveDataSourceNames:
|
||||||
|
- duanju-4
|
||||||
|
# - duanju-slave-4
|
||||||
@@ -6,9 +6,12 @@
|
|||||||
|
|
||||||
<select id="selectUserPage" resultType="com.sqx.modules.app.entity.UserEntity">
|
<select id="selectUserPage" resultType="com.sqx.modules.app.entity.UserEntity">
|
||||||
select u.*,1 as member,
|
select u.*,1 as member,
|
||||||
s.username as sysUserName
|
s.username as sysUserName,
|
||||||
|
m.cash_count as cashCount,
|
||||||
|
m.cash_amount as cashAmount
|
||||||
from tb_user u
|
from tb_user u
|
||||||
left join sys_user s on s.qd_code=u.qd_code
|
left join sys_user s on s.qd_code=u.qd_code
|
||||||
|
left join user_money m on m.user_id=u.user_id
|
||||||
where s.sys_user_id is null
|
where s.sys_user_id is null
|
||||||
<if test="search!=null and search!=''">
|
<if test="search!=null and search!=''">
|
||||||
and (u.user_id=#{search} or u.phone = #{search} or u.user_name =#{search} )
|
and (u.user_id=#{search} or u.phone = #{search} or u.user_name =#{search} )
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ import cn.hutool.core.lang.Dict;
|
|||||||
import cn.hutool.core.util.PageUtil;
|
import cn.hutool.core.util.PageUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.sqx.modules.app.dao.UserDao;
|
import com.sqx.modules.app.dao.UserDao;
|
||||||
import com.sqx.modules.app.dao.UserMoneyDao;
|
import com.sqx.modules.app.dao.UserMoneyDao;
|
||||||
@@ -19,7 +21,9 @@ import com.sqx.modules.app.service.UserService;
|
|||||||
import com.sqx.modules.job.task.TempOrdersTask;
|
import com.sqx.modules.job.task.TempOrdersTask;
|
||||||
import com.sqx.modules.orders.entity.Orders;
|
import com.sqx.modules.orders.entity.Orders;
|
||||||
import com.sqx.modules.orders.service.OrdersService;
|
import com.sqx.modules.orders.service.OrdersService;
|
||||||
|
import com.sqx.modules.pay.dao.CashOutDao;
|
||||||
import com.sqx.modules.pay.dao.PayDetailsDao;
|
import com.sqx.modules.pay.dao.PayDetailsDao;
|
||||||
|
import com.sqx.modules.pay.entity.CashOut;
|
||||||
import com.sqx.modules.pay.entity.PayDetails;
|
import com.sqx.modules.pay.entity.PayDetails;
|
||||||
import com.sqx.modules.pay.service.PayDetailsService;
|
import com.sqx.modules.pay.service.PayDetailsService;
|
||||||
import com.sqx.modules.sys.service.SysUserService;
|
import com.sqx.modules.sys.service.SysUserService;
|
||||||
@@ -34,10 +38,11 @@ import org.springframework.test.context.ActiveProfiles;
|
|||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@ActiveProfiles("pay")
|
@ActiveProfiles("test")
|
||||||
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
|
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
|
||||||
public class Tets {
|
public class Tets {
|
||||||
private static final Logger log = LoggerFactory.getLogger(Tets.class);
|
private static final Logger log = LoggerFactory.getLogger(Tets.class);
|
||||||
@@ -60,12 +65,64 @@ public class Tets {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private UserDao userDao;
|
private UserDao userDao;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
CashOutDao cashOutDao;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private SysUserService sysUserService;
|
private SysUserService sysUserService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private OrdersService ordersService;
|
private OrdersService ordersService;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUserInviteCount() {
|
||||||
|
List<UserEntity> userList = userService.list(Wrappers.emptyWrapper());
|
||||||
|
System.out.println(userList.size());
|
||||||
|
|
||||||
|
userList.parallelStream().forEach(item -> {
|
||||||
|
try {
|
||||||
|
if (item.getInviterUserId() == null) {
|
||||||
|
UserEntity userEntity = userDao.selectOne(new LambdaQueryWrapper<UserEntity>().eq(UserEntity::getInvitationCode, item.getInviterCode())
|
||||||
|
.select(UserEntity::getUserId));
|
||||||
|
item.setInviterUserId(userEntity == null ? 1L :userEntity.getUserId());
|
||||||
|
userDao.update(null, new LambdaUpdateWrapper<UserEntity>().eq(UserEntity::getUserId, item.getUserId())
|
||||||
|
.set(UserEntity::getInviterUserId, userEntity == null ? 1L : userEntity.getUserId()));
|
||||||
|
log.info("更新用户信息: {}", item);
|
||||||
|
}
|
||||||
|
|
||||||
|
int count = userService.count(new LambdaQueryWrapper<UserEntity>().eq(UserEntity::getInviterUserId, item.getUserId()));
|
||||||
|
item.setInviteCount(count);
|
||||||
|
userService.updateById(item);
|
||||||
|
log.info("更新邀请人数: {}, {}", item.getUserId(), count);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUserCashInfo() {
|
||||||
|
List<UserMoney> userMonies = userMoneyDao.selectList(new QueryWrapper<UserMoney>().isNotNull("user_id"));
|
||||||
|
System.out.println(userMonies.size());
|
||||||
|
|
||||||
|
userMonies.parallelStream().forEach(item -> {
|
||||||
|
try {
|
||||||
|
Map<String, Object> cashInfo = cashOutDao.getUserCashInfo(item.getUserId());
|
||||||
|
System.out.println(cashInfo);
|
||||||
|
|
||||||
|
item.setCashAmount(cashInfo.get("totalAmount") == null ? BigDecimal.ZERO :new BigDecimal(cashInfo.get("totalAmount").toString()));
|
||||||
|
item.setCashCount(Integer.valueOf(cashInfo.get("totalCount").toString()));
|
||||||
|
|
||||||
|
userMoneyDao.update(item, new LambdaUpdateWrapper<UserMoney>().eq(UserMoney::getUserId, item.getUserId()));
|
||||||
|
log.info("更新用户提现信息: {}", item);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("", e);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//@Test
|
//@Test
|
||||||
public void test4() {
|
public void test4() {
|
||||||
UserEntity userEntity = userDao.selectById(1072962203591784209L);
|
UserEntity userEntity = userDao.selectById(1072962203591784209L);
|
||||||
|
|||||||
Reference in New Issue
Block a user