Merge remote-tracking branch 'origin/test' into test
# Conflicts: # src/main/java/com/sqx/modules/pay/service/impl/CashOutServiceImpl.java
This commit is contained in:
commit
4f9eaf9aca
|
|
@ -6,6 +6,7 @@ import com.sqx.common.utils.Result;
|
|||
import com.sqx.modules.app.annotation.Login;
|
||||
import com.sqx.modules.app.entity.UserPrizeExchange;
|
||||
import com.sqx.modules.app.service.UserPrizeExchangeService;
|
||||
import com.sqx.modules.app.service.UserService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
|
|
@ -14,6 +15,7 @@ import lombok.AllArgsConstructor;
|
|||
import org.springframework.web.bind.annotation.*;
|
||||
import springfox.documentation.annotations.ApiIgnore;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
@RestController
|
||||
|
|
@ -22,6 +24,8 @@ import java.util.Map;
|
|||
@Api(value = "用户奖品兑换", tags = {"用户奖品兑换"})
|
||||
public class AppUserPrizeExchangeController {
|
||||
private final UserPrizeExchangeService userPrizeExchangeService;
|
||||
@Resource
|
||||
private UserService userService;
|
||||
|
||||
@Login
|
||||
@GetMapping("/page")
|
||||
|
|
@ -48,7 +52,7 @@ public class AppUserPrizeExchangeController {
|
|||
@PostMapping("/receive")
|
||||
@ApiOperation("领取满签奖励")
|
||||
public Result receive(@RequestAttribute("userId") Long userId) {
|
||||
userPrizeExchangeService.receive(userId);
|
||||
userService.addBlackUser(userId);
|
||||
return Result.success();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,10 +35,4 @@ public interface UserPrizeExchangeService extends IService<UserPrizeExchange> {
|
|||
*/
|
||||
|
||||
void deliver(UserPrizeExchange dto);
|
||||
|
||||
/**
|
||||
* 领取满签奖励现金红包
|
||||
* @param currentUserId
|
||||
*/
|
||||
void receive(Long currentUserId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,5 @@
|
|||
package com.sqx.modules.app.service.impl;
|
||||
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Dict;
|
||||
import cn.hutool.core.lang.Validator;
|
||||
import cn.hutool.core.map.MapProxy;
|
||||
|
|
@ -20,12 +18,10 @@ import com.sqx.common.utils.PageUtils;
|
|||
import com.sqx.modules.app.dao.UserDao;
|
||||
import com.sqx.modules.app.dao.UserPrizeExchangeDao;
|
||||
import com.sqx.modules.app.entity.UserEntity;
|
||||
import com.sqx.modules.app.entity.UserMoneyDetails;
|
||||
import com.sqx.modules.app.entity.UserPrizeExchange;
|
||||
import com.sqx.modules.app.service.UserMoneyDetailsService;
|
||||
import com.sqx.modules.app.service.UserMoneyService;
|
||||
import com.sqx.modules.app.service.UserPrizeExchangeService;
|
||||
import com.sqx.modules.common.entity.CommonInfo;
|
||||
import com.sqx.modules.common.service.CommonInfoService;
|
||||
import com.sqx.modules.discSpinning.dao.DiscSpinningRecordDao;
|
||||
import com.sqx.modules.discSpinning.entity.DiscSpinningRecord;
|
||||
|
|
@ -34,14 +30,12 @@ import com.sqx.modules.taskCenter.dao.TaskCenterRecordDao;
|
|||
import com.sqx.modules.taskCenter.dao.TaskCenterRewardDao;
|
||||
import com.sqx.modules.taskCenter.entity.TaskCenterRecord;
|
||||
import com.sqx.modules.taskCenter.entity.TaskCenterReward;
|
||||
import com.sqx.modules.userSign.dto.UserSignDTO;
|
||||
import com.sqx.modules.userSign.service.UserSignRecordService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
|
||||
|
|
@ -228,53 +222,4 @@ public class UserPrizeExchangeServiceImpl extends ServiceImpl<UserPrizeExchangeD
|
|||
entity.setUpdateTime(new Date());
|
||||
baseMapper.updateById(entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public synchronized void receive(Long currentUserId) {
|
||||
if (currentUserId == null) {
|
||||
throw new SqxException("未获取当前登录用户id");
|
||||
}
|
||||
UserEntity userEntity = userDao.selectById(currentUserId);
|
||||
if (userEntity == null) {
|
||||
throw new SqxException("该用户信息不存在");
|
||||
}
|
||||
CommonInfo one = commonRepository.findOne(918);
|
||||
if (one == null) {
|
||||
throw new SqxException("奖品配置信息不存在");
|
||||
}
|
||||
String value = one.getValue();
|
||||
String signDays = value.split(",")[0];
|
||||
String moneyStr = value.split(",")[1];
|
||||
UserSignDTO userSignData = userSignRecordService.getUserSignData(currentUserId);
|
||||
if (userSignData.getSignDays() < Convert.toInt(signDays)) {
|
||||
throw new SqxException(StrUtil.format("连续签到天数不足{}天,无法领取奖励", signDays));
|
||||
}
|
||||
int count = userMoneyDetailsService.count(
|
||||
Wrappers.<UserMoneyDetails>lambdaQuery()
|
||||
.eq(UserMoneyDetails::getUserId, currentUserId)
|
||||
.eq(UserMoneyDetails::getType, 1)
|
||||
.eq(UserMoneyDetails::getClassify, 7)
|
||||
.eq(UserMoneyDetails::getMoneyType, 1)
|
||||
.likeLeft(UserMoneyDetails::getTitle, "[连续签到")
|
||||
.likeRight(UserMoneyDetails::getTitle, "天]")
|
||||
);
|
||||
if (count > 0) {
|
||||
throw new SqxException("已经领取过连续签到奖励,无需重复操作");
|
||||
}
|
||||
BigDecimal money = new BigDecimal(moneyStr);
|
||||
userMoneyService.updateAmount(1, currentUserId, money.doubleValue());
|
||||
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
||||
userMoneyDetails.setUserId(currentUserId);
|
||||
userMoneyDetails.setTitle(StrUtil.format("[连续签到{}天]", signDays));
|
||||
userMoneyDetails.setContent("现金红包奖励:" + moneyStr + "元");
|
||||
// 充值
|
||||
userMoneyDetails.setType(1);
|
||||
// 任务领取
|
||||
userMoneyDetails.setClassify(7);
|
||||
userMoneyDetails.setMoney(money);
|
||||
userMoneyDetails.setCreateTime(DateUtil.now());
|
||||
userMoneyDetails.setMoneyType(1);
|
||||
userMoneyDetailsService.save(userMoneyDetails);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1605,34 +1605,34 @@ public class UserServiceImpl extends ServiceImpl<UserDao, UserEntity> implements
|
|||
@Transactional(rollbackFor = Exception.class)
|
||||
public void firstBindAwardsMoney(UserEntity entity) {
|
||||
// reentrantReadWriteLock.writeLock().lock();
|
||||
try {
|
||||
CommonInfo one = commonRepository.findOne(920);
|
||||
BigDecimal money = new BigDecimal(one.getValue());
|
||||
userMoneyService.updateAmount(1, entity.getUserId(), money.doubleValue());
|
||||
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
||||
userMoneyDetails.setUserId(entity.getUserId());
|
||||
userMoneyDetails.setTitle("[首绑支付宝]");
|
||||
userMoneyDetails.setContent("现金红包奖励:" + money + "元");
|
||||
// 充值
|
||||
userMoneyDetails.setType(1);
|
||||
// 任务领取
|
||||
userMoneyDetails.setClassify(7);
|
||||
userMoneyDetails.setMoney(money);
|
||||
userMoneyDetails.setCreateTime(DateUtil.format(new Date(System.currentTimeMillis() - 1000), "yyyy-MM-dd HH:mm:ss"));
|
||||
userMoneyDetails.setMoneyType(1);
|
||||
boolean ret = userMoneyDetailsService.save(userMoneyDetails);
|
||||
if (ret) {
|
||||
ThreadUtil.execAsync(() -> {
|
||||
discSpinningService.withdrawAsync(entity, money.doubleValue(), "[提现]");
|
||||
});
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("首绑支付宝发放奖励异常,用户信息:{}", JSONUtil.toJsonStr(entity));
|
||||
log.error("首绑支付宝发放奖励异常:", e);
|
||||
throw new RuntimeException("首绑奖励失败");
|
||||
} finally {
|
||||
// reentrantReadWriteLock.writeLock().unlock();
|
||||
}
|
||||
// try {
|
||||
// CommonInfo one = commonRepository.findOne(920);
|
||||
// BigDecimal money = new BigDecimal(one.getValue());
|
||||
// userMoneyService.updateAmount(1, entity.getUserId(), money.doubleValue());
|
||||
// UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
||||
// userMoneyDetails.setUserId(entity.getUserId());
|
||||
// userMoneyDetails.setTitle("[首绑支付宝]");
|
||||
// userMoneyDetails.setContent("现金红包奖励:" + money + "元");
|
||||
// // 充值
|
||||
// userMoneyDetails.setType(1);
|
||||
// // 任务领取
|
||||
// userMoneyDetails.setClassify(7);
|
||||
// userMoneyDetails.setMoney(money);
|
||||
// userMoneyDetails.setCreateTime(DateUtil.format(new Date(System.currentTimeMillis() - 1000), "yyyy-MM-dd HH:mm:ss"));
|
||||
// userMoneyDetails.setMoneyType(1);
|
||||
// boolean ret = userMoneyDetailsService.save(userMoneyDetails);
|
||||
// if (ret) {
|
||||
// ThreadUtil.execAsync(() -> {
|
||||
// discSpinningService.withdrawAsync(entity, money.doubleValue(), "[提现]");
|
||||
// });
|
||||
// }
|
||||
// } catch (Exception e) {
|
||||
// log.error("首绑支付宝发放奖励异常,用户信息:{}", JSONUtil.toJsonStr(entity));
|
||||
// log.error("首绑支付宝发放奖励异常:", e);
|
||||
// throw new RuntimeException("首绑奖励失败");
|
||||
// } finally {
|
||||
//// reentrantReadWriteLock.writeLock().unlock();
|
||||
// }
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -14,15 +14,6 @@ public interface DiscSpinningService extends IService<DiscSpinning> {
|
|||
//领奖
|
||||
void receiveAsync(DiscSpinningRecord receive);
|
||||
|
||||
//提现
|
||||
void withdraw(UserEntity userInfo, Double money);
|
||||
|
||||
//提现
|
||||
void withdraw(UserEntity userInfo, Double money, String title);
|
||||
|
||||
//提现
|
||||
void withdrawAsync(UserEntity userInfo, Double money, String title);
|
||||
|
||||
//领取
|
||||
void receive1(DiscSpinningRecord receive);
|
||||
|
||||
|
|
|
|||
|
|
@ -100,96 +100,6 @@ public class DiscSpinningServiceImpl extends ServiceImpl<DiscSpinningDao, DiscSp
|
|||
//存入余额 钱
|
||||
userMoneyService.updateAmount(1, receive.getUserId(), receive.getNumber().doubleValue());
|
||||
|
||||
|
||||
// 去除自动提现
|
||||
// if (receive.getNumber().compareTo(new BigDecimal("0.1")) > 0 && StringUtils.isNotBlank(userInfo.getZhiFuBao()) && StringUtils.isNotBlank(userInfo.getZhiFuBaoName())) {
|
||||
// //提现
|
||||
// withdraw(userInfo, receive.getNumber().doubleValue());
|
||||
// }
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void withdraw(UserEntity userInfo, Double money) {
|
||||
withdraw(userInfo, money, "[提现]");
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void withdraw(UserEntity userInfo, Double money, String title) {
|
||||
CashOut cashOut = new CashOut();
|
||||
cashOut.setIsOut(false);
|
||||
cashOut.setMoney(money.toString());
|
||||
cashOut.setUserId(userInfo.getUserId());
|
||||
cashOut.setZhifubao(userInfo.getZhiFuBao());
|
||||
cashOut.setZhifubaoName(userInfo.getZhiFuBaoName());
|
||||
cashOut.setState(0);
|
||||
cashOut.setRate(0.00);
|
||||
cashOut.setUserType(1);
|
||||
cashOut.setCreateAt(DateUtil.now());
|
||||
cashOut.setUserType(1);
|
||||
cashOut.setWithdrawType(WithdrawTypeEnum.RED_ENVELOPE.getValue());
|
||||
|
||||
//最高提现金额
|
||||
CommonInfo one2 = commonRepository.findOne(910);
|
||||
if (one2 == null || money <= Double.parseDouble(one2.getValue())) {
|
||||
if (wuyouPay.checkCanCash(userInfo.getUserId(), WithdrawTypeEnum.RED_ENVELOPE, BigDecimal.valueOf(money))) {
|
||||
cashOut.setStatus(4);
|
||||
String outOrderNo = AliPayOrderUtil.createOrderId();
|
||||
cashOut.setOrderNumber(outOrderNo);
|
||||
BaseResp baseResp = wuyouPay.extractOrder(outOrderNo, userInfo.getUserId(), true, cashOut.getMoney(), cashOut.getZhifubao(), cashOut.getZhifubaoName());
|
||||
if (baseResp.getStatus() != null && (baseResp.getStatus().equals(2) || baseResp.getStatus().equals(10000))) {
|
||||
UserMoneyDetails userMoneyDetails = new UserMoneyDetails(
|
||||
userInfo.getUserId(), null, null, title, 4, 2, 1,
|
||||
new BigDecimal(money), "现金红包自动提现" + money + "元", 1);
|
||||
userMoneyDetailsService.save(userMoneyDetails);
|
||||
//减去余额 钱
|
||||
userMoneyService.updateAmount(2, userInfo.getUserId(), money);
|
||||
|
||||
cashOut.setState(1);
|
||||
} else if (StringUtils.isNotBlank(baseResp.getErrorMsg())) {
|
||||
cashOut.setState(2);
|
||||
if (baseResp.getErrorMsg().contains("收款人账户号出款属性不匹配")) {
|
||||
cashOut.setRefund("提现失败,请检查支付宝账号与收款人姓名后,重试。");
|
||||
} else {
|
||||
cashOut.setRefund(baseResp.getErrorMsg());
|
||||
}
|
||||
} else if (StringUtils.isNotBlank(baseResp.getMsg())) {
|
||||
cashOut.setState(2);
|
||||
cashOut.setRefund("提现失败,请检查支付宝账号与收款人姓名后,重试。");
|
||||
}
|
||||
} else {
|
||||
UserMoneyDetails userMoneyDetails = new UserMoneyDetails(
|
||||
userInfo.getUserId(), null, null, title, 4, 2, 1,
|
||||
new BigDecimal(money), "现金红包自动提现" + money + "元", 1);
|
||||
userMoneyDetailsService.save(userMoneyDetails);
|
||||
//减去余额 钱
|
||||
userMoneyService.updateAmount(2, userInfo.getUserId(), money);
|
||||
cashOut.setState(3);
|
||||
}
|
||||
} else {
|
||||
UserMoneyDetails userMoneyDetails = new UserMoneyDetails(
|
||||
userInfo.getUserId(), null, null, title, 4, 2, 1,
|
||||
new BigDecimal(money), "现金红包自动提现" + money + "元", 1);
|
||||
userMoneyDetailsService.save(userMoneyDetails);
|
||||
//减去余额 钱
|
||||
userMoneyService.updateAmount(2, userInfo.getUserId(), money);
|
||||
}
|
||||
cashOutService.saveBody(cashOut);
|
||||
log.info("领取奖励执行完毕");
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void withdrawAsync(UserEntity userInfo, Double money, String title) {
|
||||
TransactionStatus transactionStatus = transactionManager.getTransaction(new DefaultTransactionDefinition());
|
||||
try {
|
||||
withdraw(userInfo, money, title);
|
||||
transactionManager.commit(transactionStatus);
|
||||
} catch (Exception e) {
|
||||
transactionManager.rollback(transactionStatus);
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -599,7 +599,7 @@ public class CashOutServiceImpl extends ServiceImpl<CashOutDao, CashOut> impleme
|
|||
return Result.error(baseResp.getErrorMsg());
|
||||
}
|
||||
} else {
|
||||
sysUserMoneyDetails.setContent("成功提现:" + money);
|
||||
sysUserMoneyDetails.setContent("提现:" + money);
|
||||
cashOut.setState(3);
|
||||
}
|
||||
|
||||
|
|
@ -626,7 +626,7 @@ public class CashOutServiceImpl extends ServiceImpl<CashOutDao, CashOut> impleme
|
|||
// 禁止该姓名的用户提现
|
||||
Integer count = tbWithdrawBlacklistMapper.selectCount(Wrappers.<TbWithdrawBlacklist>lambdaQuery().in(TbWithdrawBlacklist::getRealName, withdrawCheckNameSet));
|
||||
if (count > 0) {
|
||||
userMoneyDetails.setContent("成功提现:" + money);
|
||||
userMoneyDetails.setContent("提现-" + money);
|
||||
cashOut.setState(3);
|
||||
cashOut.setRelationId("提现黑名单用户,请谨慎审核!");
|
||||
} else {
|
||||
|
|
@ -643,7 +643,7 @@ public class CashOutServiceImpl extends ServiceImpl<CashOutDao, CashOut> impleme
|
|||
return Result.error(baseResp.getErrorMsg());
|
||||
}
|
||||
} else {
|
||||
userMoneyDetails.setContent("成功提现:" + money);
|
||||
userMoneyDetails.setContent("提现:" + money);
|
||||
cashOut.setState(3);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ import com.sqx.modules.app.entity.TbUserBlacklist;
|
|||
import com.sqx.modules.app.entity.UserInfo;
|
||||
import com.sqx.modules.app.mapper.TbUserBlacklistMapper;
|
||||
import com.sqx.modules.app.mapper.UserInfoMapper;
|
||||
import com.sqx.modules.app.service.impl.UserServiceImpl;
|
||||
import com.sqx.modules.taskCenter.entity.TaskCenter;
|
||||
import com.sqx.modules.taskCenter.entity.TaskCenterRecord;
|
||||
import com.sqx.modules.taskCenter.entity.TaskCenterReward;
|
||||
|
|
@ -54,6 +55,8 @@ public class TaskCenterController {
|
|||
private TbUserBlacklistMapper tbUserBlacklistMapper;
|
||||
@Autowired
|
||||
private UserInfoMapper userInfoMapper;
|
||||
@Autowired
|
||||
private UserServiceImpl userService;
|
||||
|
||||
@PostMapping("/taskCenter/insertTaskCenter")
|
||||
@ApiOperation("添加任务中心")
|
||||
|
|
@ -108,14 +111,7 @@ public class TaskCenterController {
|
|||
@Debounce(value = "#userId,#id")
|
||||
public Result taskReceive(@ApiIgnore @RequestAttribute("userId") Long userId, Long id) {
|
||||
if (id != null && id == 19) {
|
||||
log.info("异常用户id: {}", userId);
|
||||
UserInfo userInfo = userInfoMapper.selectOne(new LambdaQueryWrapper<UserInfo>().eq(UserInfo::getUserId, userId));
|
||||
if (userInfo != null && !StrUtil.isBlank(userInfo.getCertNo())) {
|
||||
TbUserBlacklist userBlacklist = new TbUserBlacklist();
|
||||
userBlacklist.setRealName(userInfo.getCertName());
|
||||
userBlacklist.setIdCardNo(userInfo.getCertNo());
|
||||
tbUserBlacklistMapper.insert(userBlacklist);
|
||||
}
|
||||
userService.addBlackUser(userId);
|
||||
}
|
||||
return taskCenterService.taskReceive(userId, id);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue