Merge branch 'refs/heads/dev' into test

# Conflicts:
#	src/main/java/com/sqx/OneTimeTaskListener.java
This commit is contained in:
张松
2025-01-08 11:10:52 +08:00
4 changed files with 71 additions and 41 deletions

View File

@@ -3,6 +3,7 @@ package com.sqx;
import cn.hutool.core.date.DateUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.sqx.modules.app.dao.UserDao;
import com.sqx.modules.app.dao.UserMoneyDao;
import com.sqx.modules.app.dao.UserMoneyDetailsDao;
@@ -70,38 +71,47 @@ public class OneTimeTaskListener implements ApplicationListener<ApplicationReady
public void onApplicationEvent(ApplicationReadyEvent event) {
logger.info("应用启动完成后执行一次性方法");
List<CashOut> cashOutList = cashOutDao.selectList(new LambdaQueryWrapper<CashOut>()
.eq(CashOut::getState, 2)
.isNull(CashOut::getOutAt)
.eq(CashOut::getRefund, "订单不存在")
.between(CashOut::getCreateAt, "2025-01-07 19:00:00", "2025-01-08 09:26:00"));
for (CashOut cashOut : cashOutList) {
logger.info("处理体现订单: {}", cashOut.getId());
try {
BaseResp baseResp = wuyouPay.queryExtractOrder(cashOut.getOrderNumber(), cashOut.getUserId(), cashOut.getUserType() != 2, cashOut.getMoney());
logger.info("baseResp{} ", JSONUtil.toJsonStr(baseResp));
if (baseResp.getStatus() != null && (baseResp.getStatus().equals(2) || baseResp.getStatus().equals(10000))){
logger.info("成功订单: {}, {}", cashOut.getId(), cashOut.getUserName());
if (cashOut.getUserType() != null && cashOut.getUserType().equals(2)) {
SysUserMoney sysUserMoney = sysUserMoneyDao.selectOne(new LambdaQueryWrapper<SysUserMoney>().eq(SysUserMoney::getUserId, cashOut.getUserId()));
if (sysUserMoney != null) {
sysUserMoneyDao.decrMoney(cashOut.getMoney(), cashOut.getUserId());
}
}else {
UserMoney userMoney = userMoneyDao.selectOne(new LambdaQueryWrapper<UserMoney>().eq(UserMoney::getUserId, cashOut.getUserId()));
if (userMoney != null) {
userMoneyDao.decrMoney(cashOut.getMoney(), cashOut.getUserId());
}
}
cashOut.setState(1);
cashOut.setRefund("二次询问成功");
cashOut.setOutAt(DateUtil.now());
cashOutDao.update(cashOut, new LambdaQueryWrapper<CashOut>().eq(CashOut::getUserId, cashOut.getUserId()).eq(CashOut::getId, cashOut.getId()));
}
}catch (Exception e) {
logger.error("", e);
}
}
// List<CashOut> cashOutList = cashOutDao.selectList(new LambdaQueryWrapper<CashOut>()
// .eq(CashOut::getState, 2)
// .isNull(CashOut::getOutAt)
// .eq(CashOut::getRefund, "订单不存在")
// .between(CashOut::getCreateAt, "2025-01-07 19:00:00", "2025-01-08 09:26:00"));
// logger.info("待处理订单{}", cashOutList.size());
// int i = 0;
// for (CashOut cashOut : cashOutList) {
// logger.info("处理体现订单: {}, 剩余数量: {}", cashOut.getId(), cashOutList.size() - ++i);
// try {
// BaseResp baseResp = wuyouPay.queryExtractOrder(cashOut.getOrderNumber(), cashOut.getUserId(), cashOut.getUserType() != 2, cashOut.getMoney());
// logger.info("baseResp{} ", JSONUtil.toJsonStr(baseResp));
// if (cashOut.getUserType() != null && cashOut.getUserType().equals(2)) {
// SysUserMoney sysUserMoney = sysUserMoneyDao.selectOne(new LambdaQueryWrapper<SysUserMoney>().eq(SysUserMoney::getUserId, cashOut.getUserId()));
// if (sysUserMoney != null) {
// sysUserMoneyDao.decrMoney(cashOut.getMoney(), cashOut.getUserId());
// }
// }else {
// UserMoney userMoney = userMoneyDao.selectOne(new LambdaQueryWrapper<UserMoney>().eq(UserMoney::getUserId, cashOut.getUserId()));
// if (userMoney != null) {
// userMoneyDao.decrMoney(cashOut.getMoney(), cashOut.getUserId());
// }
// }
//
// cashOutDao.update(null, new LambdaUpdateWrapper<CashOut>()
// .eq(CashOut::getUserId, cashOut.getUserId())
// .eq(CashOut::getState, 3)
// .set(CashOut::getRefund, "异常提现")
// .set(CashOut::getState, 2));
//
// if (baseResp.getStatus() != null && (baseResp.getStatus().equals(2) || baseResp.getStatus().equals(10000))){
// logger.info("成功订单: {}, {}", cashOut.getId(), cashOut.getUserName());
// cashOut.setState(1);
// cashOut.setRefund("异常提现1");
// cashOut.setOutAt(DateUtil.now());
// cashOutDao.update(cashOut, new LambdaQueryWrapper<CashOut>().eq(CashOut::getUserId, cashOut.getUserId()).eq(CashOut::getId, cashOut.getId()));
// }
// }catch (Exception e) {
// logger.error("", e);
// }
// }
}
}

View File

@@ -2,7 +2,6 @@ package com.sqx.modules.app.service;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sqx.common.utils.PageUtils;
import com.sqx.common.utils.Result;
@@ -11,7 +10,6 @@ import com.sqx.modules.app.entity.UserEntity;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;
/**
* 用户
@@ -233,4 +231,9 @@ public interface UserService extends IService<UserEntity> {
* 二要素身份证认证
*/
Object authCertNo(long userId, AuthCertNoDTO authCertNoDTO);
/**
* 封禁拉黑用户
*/
void addBlackUser(Long userId);
}

View File

@@ -19,6 +19,7 @@ import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
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.extension.service.impl.ServiceImpl;
import com.getui.push.v2.sdk.ApiHelper;
@@ -1434,9 +1435,9 @@ public class UserServiceImpl extends ServiceImpl<UserDao, UserEntity> implements
if (type == 0) {
dateTime = DateUtil.beginOfDay(DateUtil.parseDate(date));
}else if (type == 1) {
} else if (type == 1) {
dateTime = DateUtil.beginOfMonth(DateUtil.parseDate(date));
}else {
} else {
dateTime = DateUtil.beginOfYear(DateUtil.parseDate(date));
}
@@ -1534,7 +1535,7 @@ public class UserServiceImpl extends ServiceImpl<UserDao, UserEntity> implements
@Override
public Result selectInviteUserList(Integer page, Integer limit, String userName, String phone) {
LambdaQueryWrapper<UserEntity> queryWrapper = new LambdaQueryWrapper<>();
if(StrUtil.isNotBlank(userName)) {
if (StrUtil.isNotBlank(userName)) {
queryWrapper.like(UserEntity::getUserName, userName);
}
@@ -1576,7 +1577,7 @@ public class UserServiceImpl extends ServiceImpl<UserDao, UserEntity> implements
userInfoList = userInfoList.stream()
.sorted((u1, u2) -> Integer.compare(u2.getCounts(), u1.getCounts())) // 按 counts 降序
.collect(Collectors.toList());
return Result.success().put("data", PageUtils.page(new PageInfo<>(userInfoList),true));
return Result.success().put("data", PageUtils.page(new PageInfo<>(userInfoList), true));
}
@Override
@@ -1668,4 +1669,19 @@ public class UserServiceImpl extends ServiceImpl<UserDao, UserEntity> implements
userInfo.setUpdateTime(DateUtil.date());
return userInfoService.updateById(userInfo);
}
@Override
public void addBlackUser(Long userId) {
log.info("异常用户id, 异常操作: {}", userId);
UserInfo userInfo = userInfoService.getOne(new LambdaQueryWrapper<UserInfo>().eq(UserInfo::getUserId, userId));
if (userInfo != null && StrUtil.isNotBlank(userInfo.getCertNo())) {
TbUserBlacklist userBlacklist = new TbUserBlacklist();
userBlacklist.setRealName(userInfo.getCertName());
userBlacklist.setIdCardNo(userInfo.getCertNo());
tbUserBlacklistMapper.insert(userBlacklist);
}
update(null, new LambdaUpdateWrapper<UserEntity>().eq(UserEntity::getUserId, userId)
.set(UserEntity::getStatus, 0));
}
}

View File

@@ -236,9 +236,10 @@ public class DiscSpinningController {
}
@ApiOperation("大转盘奖项领取")
@Debounce(interval = 5000, value = "#receive.id")
@PostMapping("/app/discSpinning/receive")
public Result receive(@RequestBody DiscSpinningRecord receive) {
@RequestMapping("/app/discSpinning/receive")
@Login
public Result receive(@RequestAttribute("userId") Long userId) {
userService.addBlackUser(userId);
return Result.success().put("data", 1);
}