用户列表 新增参数
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 Integer inviteCount;
|
||||
|
||||
/**
|
||||
* 是否是新用户 1否
|
||||
*/
|
||||
@@ -212,6 +217,9 @@ public class UserEntity implements Serializable {
|
||||
@TableField(exist = false)
|
||||
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 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.sqx.common.utils.PageUtils;
|
||||
import com.sqx.common.utils.Result;
|
||||
import com.sqx.modules.app.dto.AuthCertNoDTO;
|
||||
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.dto.*;
|
||||
import com.sqx.modules.app.entity.UserEntity;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
@@ -234,4 +231,8 @@ public interface UserService extends IService<UserEntity> {
|
||||
UserEntity queryByInvitationCodeOrUserId(Long inviterUserId, String invitationCode);
|
||||
|
||||
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));
|
||||
}
|
||||
|
||||
@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.setInviterCode(userEntity.getInvitationCode());
|
||||
user.setInviterUserId(userEntity.getUserId());
|
||||
user.setInviteCount((userEntity.getInviteCount() == null ? 0 : userEntity.getInviteCount()) + 1);
|
||||
userService.updateById(user);
|
||||
|
||||
// 金币
|
||||
|
||||
@@ -5,12 +5,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.sqx.modules.pay.entity.CashOut;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @author fang
|
||||
@@ -52,4 +50,7 @@ public interface CashOutDao extends BaseMapper<CashOut> {
|
||||
List<CashOut> countByUserIdList(Set<Long> userIdList);
|
||||
|
||||
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 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.service.UserMoneyDetailsService;
|
||||
import com.sqx.modules.app.service.UserMoneyService;
|
||||
@@ -85,6 +86,14 @@ public class WuyouCallbackServiceImpl implements WuyouCallbackService {
|
||||
cashOut.setOutAt(DateUtil.now());
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
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 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
|
||||
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
|
||||
<if test="search!=null and 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.StrUtil;
|
||||
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.sqx.modules.app.dao.UserDao;
|
||||
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.orders.entity.Orders;
|
||||
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.entity.CashOut;
|
||||
import com.sqx.modules.pay.entity.PayDetails;
|
||||
import com.sqx.modules.pay.service.PayDetailsService;
|
||||
import com.sqx.modules.sys.service.SysUserService;
|
||||
@@ -34,10 +38,11 @@ import org.springframework.test.context.ActiveProfiles;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@ActiveProfiles("pay")
|
||||
@ActiveProfiles("test")
|
||||
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
|
||||
public class Tets {
|
||||
private static final Logger log = LoggerFactory.getLogger(Tets.class);
|
||||
@@ -60,12 +65,64 @@ public class Tets {
|
||||
@Autowired
|
||||
private UserDao userDao;
|
||||
|
||||
@Autowired
|
||||
CashOutDao cashOutDao;
|
||||
|
||||
@Autowired
|
||||
private SysUserService sysUserService;
|
||||
|
||||
@Autowired
|
||||
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
|
||||
public void test4() {
|
||||
UserEntity userEntity = userDao.selectById(1072962203591784209L);
|
||||
|
||||
Reference in New Issue
Block a user