Merge remote-tracking branch 'origin/test' into test
This commit is contained in:
@@ -10,16 +10,21 @@ import org.aspectj.lang.ProceedingJoinPoint;
|
||||
import org.aspectj.lang.annotation.Around;
|
||||
import org.aspectj.lang.annotation.Aspect;
|
||||
import org.aspectj.lang.annotation.Pointcut;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Profile;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 方法调用统一切面处理
|
||||
*/
|
||||
@Aspect
|
||||
@Component
|
||||
@Slf4j
|
||||
@Profile({"dev"})
|
||||
public class AppApiMethodAspect {
|
||||
|
||||
@Pointcut("!execution(public * (com.sqx.modules.sys.controller.SysLoginController).*(..)) " +
|
||||
|
||||
@@ -292,6 +292,7 @@ public class UserController {
|
||||
int dyCount = userService.queryUserCount(type, date, "抖音", qdCode);
|
||||
int giveMemberCount = userService.userMessage(date, type, qdCode, 1);
|
||||
int moneyMemberCount = userService.userMessage(date, type, qdCode, 2);
|
||||
// int memberCount = userVipService.userMessage(date, type, qdCode, null);
|
||||
int memberCount = userService.userMessage(date, type, qdCode, null);
|
||||
int userCount = sumUserCount - memberCount;
|
||||
Map<String, Integer> result = new HashMap<>();
|
||||
@@ -359,24 +360,24 @@ public class UserController {
|
||||
@PostMapping("/updateSysUserMoney")
|
||||
@ApiOperation("修改金币")
|
||||
public Result updateSysUserMoney(Long userId, Double money, Integer type) {
|
||||
userMoneyService.updateSysMoney(type, userId, money);
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
||||
userMoneyDetails.setSysUserId(userId);
|
||||
if (type == 1) {
|
||||
userMoneyDetails.setTitle("[增加金币]平台增加金币:" + money);
|
||||
userMoneyDetails.setContent("[增加金币]平台增加金币:" + money);
|
||||
} else {
|
||||
userMoneyDetails.setTitle("[减少金币]平台减少金币:" + money);
|
||||
userMoneyDetails.setContent("[减少金币]平台减少金币:" + money);
|
||||
}
|
||||
userMoneyDetails.setMoneyType(2);
|
||||
userMoneyDetails.setType(type);
|
||||
// ✅
|
||||
userMoneyDetails.setClassify(8);
|
||||
userMoneyDetails.setMoney(new BigDecimal(money));
|
||||
userMoneyDetails.setCreateTime(sdf.format(new Date()));
|
||||
userMoneyDetailsService.save(userMoneyDetails);
|
||||
// userMoneyService.updateSysMoney(type, userId, money);
|
||||
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
// UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
||||
// userMoneyDetails.setSysUserId(userId);
|
||||
// if (type == 1) {
|
||||
// userMoneyDetails.setTitle("[增加金币]平台增加金币:" + money);
|
||||
// userMoneyDetails.setContent("[增加金币]平台增加金币:" + money);
|
||||
// } else {
|
||||
// userMoneyDetails.setTitle("[减少金币]平台减少金币:" + money);
|
||||
// userMoneyDetails.setContent("[减少金币]平台减少金币:" + money);
|
||||
// }
|
||||
// userMoneyDetails.setMoneyType(2);
|
||||
// userMoneyDetails.setType(type);
|
||||
// // ✅
|
||||
// userMoneyDetails.setClassify(8);
|
||||
// userMoneyDetails.setMoney(new BigDecimal(money));
|
||||
// userMoneyDetails.setCreateTime(sdf.format(new Date()));
|
||||
// userMoneyDetailsService.save(userMoneyDetails);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.sqx.modules.app.controller;
|
||||
import com.sqx.common.utils.Result;
|
||||
import com.sqx.modules.app.service.UserMoneyDetailsService;
|
||||
import com.sqx.modules.app.service.UserMoneyService;
|
||||
import com.sqx.modules.sys.service.SysUserMoneyService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.AllArgsConstructor;
|
||||
@@ -17,6 +18,7 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
public class UserMoneyDetailsController {
|
||||
private UserMoneyDetailsService userMoneyDetailsService;
|
||||
private UserMoneyService userMoneyService;
|
||||
private SysUserMoneyService sysUserMoneyService;
|
||||
|
||||
|
||||
@ApiOperation("钱包明细")
|
||||
@@ -34,7 +36,7 @@ public class UserMoneyDetailsController {
|
||||
@GetMapping("/selectSysUserMoney")
|
||||
@ApiOperation("代理钱包")
|
||||
public Result selectSysUserMoney(Long userId){
|
||||
return Result.success().put("data",userMoneyService.selectSysUserMoneyByUserId(userId));
|
||||
return Result.success().put("data",sysUserMoneyService.selectSysUserMoneyByUserId(userId));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -113,15 +113,15 @@ public class AppController {
|
||||
if (count > 0) {
|
||||
errMsg = "支付宝信息修改失败: 一个支付宝账号仅可绑定一个用户";
|
||||
}
|
||||
if (StrUtil.isNotBlank(userInfo.getCertName()) && !certName.equals(userInfo.getCertName())) {
|
||||
if (errMsg == null && StrUtil.isNotBlank(userInfo.getCertName()) && !certName.equals(userInfo.getCertName())) {
|
||||
errMsg = "支付宝信息修改失败: 姓名与实名认证信息不相符";
|
||||
}
|
||||
|
||||
if (!DataLimitUtil.isAccessAllowed(zhiFuBao+certName, Integer.parseInt(commonRepository.findOne(924).getValue()), "month")) {
|
||||
if (errMsg == null && !DataLimitUtil.isAccessAllowed(zhiFuBao+certName, Integer.parseInt(commonRepository.findOne(924).getValue()), "month")) {
|
||||
errMsg = "支付宝信息修改失败: 相同支付宝账号每月可绑定次数已用完";
|
||||
}
|
||||
|
||||
if (!ApiAccessLimitUtil.isAccessAllowed(userId.toString(), "updateZFB", Integer.parseInt(commonRepository.findOne(925).getValue()), "month")) {
|
||||
if (errMsg == null && !ApiAccessLimitUtil.isAccessAllowed(userId.toString(), "updateZFB", Integer.parseInt(commonRepository.findOne(925).getValue()), "month")) {
|
||||
errMsg = "支付宝信息修改失败: 每月可修改次数已用完,请联系管理员";
|
||||
}
|
||||
|
||||
@@ -133,42 +133,48 @@ public class AppController {
|
||||
}
|
||||
|
||||
|
||||
String authErrMsg = null;
|
||||
if (StrUtil.isNotBlank(certNum) && !certNum.equals(userInfo.getCertNo())) {
|
||||
if (StrUtil.isNotBlank(userEntity.getZhiFuBaoName()) && !certName.equals(userEntity.getZhiFuBaoName())) {
|
||||
errMsg = "实名修改失败: 姓名与绑定支付宝信息不相符";
|
||||
authErrMsg = "实名修改失败: 姓名与绑定支付宝信息不相符";
|
||||
}
|
||||
if (!IdcardUtil.isValidCard(certNum)) {
|
||||
errMsg = "实名修改失败: 身份证号码有误";
|
||||
if (authErrMsg == null && !IdcardUtil.isValidCard(certNum)) {
|
||||
authErrMsg = "实名修改失败: 身份证号码有误";
|
||||
}
|
||||
|
||||
Integer idCount = userInfoService.countCertCount(certName, certNum);
|
||||
if (idCount > 1) {
|
||||
errMsg = "实名修改失败: 此实名信息已存在";
|
||||
if (authErrMsg == null) {
|
||||
Integer idCount = userInfoService.countCertCount(certName, certNum);
|
||||
if (idCount > 1) {
|
||||
authErrMsg = "实名修改失败: 此实名信息已存在";
|
||||
}
|
||||
}
|
||||
|
||||
if (!ApiAccessLimitUtil.isAccessAllowed(String.valueOf(userId), "updateAuthCertInfo", 1, "month")) {
|
||||
errMsg = "实名修改失败: 每月可修改次数已用完,请联系管理员";
|
||||
if (authErrMsg == null && !ApiAccessLimitUtil.isAccessAllowed(String.valueOf(userId), "updateAuthCertInfo", 1, "month")) {
|
||||
authErrMsg = "实名修改失败: 账号每月可修改次数已用完,请联系管理员";
|
||||
}
|
||||
|
||||
try {
|
||||
aliService.authCertNo(certName, certNum);
|
||||
}catch (Exception e) {
|
||||
ApiAccessLimitUtil.removeKey(String.valueOf(userId), "updateAuthCertInfo");
|
||||
errMsg = "实名修改失败: 身份证信息不匹配";
|
||||
if (authErrMsg == null && !ApiAccessLimitUtil.isAccessAllowed(certName, "updateAuthCertInfoByIdCard", 1, "month")) {
|
||||
authErrMsg = "实名修改失败: 此身份证信息次月已绑定过,请联系管理员";
|
||||
}
|
||||
|
||||
if (errMsg != null && errMsg.contains("实名修改失败")) {
|
||||
return Result.error(errMsg);
|
||||
if (authErrMsg == null) {
|
||||
try {
|
||||
aliService.authCertNo(certName, certNum);
|
||||
userInfo.setCertName(certName);
|
||||
userInfo.setCertNo(certNum);
|
||||
userInfo.setUpdateTime(DateUtil.date());
|
||||
userInfoService.update(userInfo, new LambdaQueryWrapper<UserInfo>().eq(UserInfo::getUserId, userId));
|
||||
}catch (Exception e) {
|
||||
ApiAccessLimitUtil.removeKey(String.valueOf(userId), "updateAuthCertInfo");
|
||||
ApiAccessLimitUtil.removeKey(certName, "updateAuthCertInfoByIdCard");
|
||||
authErrMsg = "实名修改失败: 身份证信息不匹配";
|
||||
}
|
||||
}
|
||||
|
||||
userInfo.setCertName(certName);
|
||||
userInfo.setCertNo(certNum);
|
||||
userInfo.setUpdateTime(DateUtil.date());
|
||||
userInfoService.update(userInfo, new LambdaQueryWrapper<UserInfo>().eq(UserInfo::getUserId, userId));
|
||||
}
|
||||
|
||||
if (errMsg != null) {
|
||||
return Result.error(errMsg);
|
||||
if (errMsg != null || authErrMsg != null) {
|
||||
authErrMsg = authErrMsg == null ? "" : authErrMsg;
|
||||
return Result.error(errMsg == null ? authErrMsg : errMsg + " " + authErrMsg);
|
||||
}
|
||||
return Result.success();
|
||||
// 去除首绑支付宝奖励
|
||||
@@ -232,6 +238,9 @@ public class AppController {
|
||||
UserInfo userInfo = userInfoService.getByUserId(user.getUserId());
|
||||
Map<String, Object> map = BeanUtil.beanToMap(user);
|
||||
map.putAll(BeanUtil.beanToMap(userInfo));
|
||||
if (StrUtil.isBlank(user.getZhiFuBaoName()) && StrUtil.isNotBlank(userInfo.getCertName())) {
|
||||
map.put("zhiFuBaoName", userInfo.getCertName());
|
||||
}
|
||||
return Result.success().put("data", map);
|
||||
}
|
||||
|
||||
|
||||
@@ -14,10 +14,6 @@ public interface UserMoneyDao extends BaseMapper<UserMoney> {
|
||||
|
||||
void updateMayAmount(@Param("type") Integer type, @Param("userId")Long userId, @Param("amount") Double amount);
|
||||
|
||||
void updateSysMoney(@Param("type") Integer type, @Param("sysUserId")Long sysUserId, @Param("money") Double money);
|
||||
|
||||
void updateSysAmount(@Param("type") Integer type, @Param("sysUserId")Long sysUserId, @Param("amount") Double amount);
|
||||
|
||||
@Select("select sum(money) from user_money_details where user_id=#{userId} and classify in (6,1) and (content like '%额外奖励金币%' or content like '获取金币')")
|
||||
BigDecimal sumMoney(Long userId);
|
||||
|
||||
|
||||
@@ -7,13 +7,7 @@ public interface UserMoneyService extends IService<UserMoney> {
|
||||
|
||||
UserMoney selectUserMoneyByUserId(Long userId);
|
||||
|
||||
UserMoney selectSysUserMoneyByUserId(Long userId);
|
||||
|
||||
void updateMoney(int i, Long userId, double money);
|
||||
|
||||
void updateAmount(int i, Long userId, double amount);
|
||||
|
||||
void updateSysMoney(int i, Long userId, double money);
|
||||
|
||||
void updateSysAmount(int i, Long userId, double amount);
|
||||
}
|
||||
|
||||
@@ -24,18 +24,6 @@ public class UserMoneyServiceImpl extends ServiceImpl<UserMoneyDao, UserMoney> i
|
||||
baseMapper.updateMayAmount(i,userId,amount);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateSysMoney(int i, Long userId, double money){
|
||||
selectSysUserMoneyByUserId(userId);
|
||||
baseMapper.updateSysMoney(i,userId,money);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateSysAmount(int i, Long userId, double amount){
|
||||
selectSysUserMoneyByUserId(userId);
|
||||
baseMapper.updateSysAmount(i,userId,amount);
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserMoney selectUserMoneyByUserId(Long userId){
|
||||
UserMoney userMoney = baseMapper.selectOne(new QueryWrapper<UserMoney>().eq("user_id", userId));
|
||||
@@ -48,19 +36,4 @@ public class UserMoneyServiceImpl extends ServiceImpl<UserMoneyDao, UserMoney> i
|
||||
}
|
||||
return userMoney;
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserMoney selectSysUserMoneyByUserId(Long userId){
|
||||
UserMoney userMoney = baseMapper.selectOne(new QueryWrapper<UserMoney>().eq("sys_user_id", userId));
|
||||
if(userMoney==null){
|
||||
userMoney=new UserMoney();
|
||||
userMoney.setSysUserId(userId);
|
||||
userMoney.setMoney(new BigDecimal("0.00"));
|
||||
userMoney.setAmount(new BigDecimal("0.00"));
|
||||
baseMapper.insert(userMoney);
|
||||
}
|
||||
return userMoney;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -44,6 +44,7 @@ import com.sqx.common.utils.Result;
|
||||
import com.sqx.modules.app.dao.AuthCertNoDTO;
|
||||
import com.sqx.modules.app.dao.MsgDao;
|
||||
import com.sqx.modules.app.dao.UserDao;
|
||||
import com.sqx.modules.app.dao.UserVipDao;
|
||||
import com.sqx.modules.app.entity.*;
|
||||
import com.sqx.modules.app.service.*;
|
||||
import com.sqx.modules.app.utils.JwtUtils;
|
||||
@@ -82,11 +83,9 @@ import weixin.popular.util.JsonUtil;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.math.BigDecimal;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.locks.ReentrantReadWriteLock;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 用户
|
||||
@@ -124,15 +123,17 @@ public class UserServiceImpl extends ServiceImpl<UserDao, UserEntity> implements
|
||||
private SysUserService sysUserService;
|
||||
private final AliService aliService;
|
||||
private final UserInfoService userInfoService;
|
||||
private final UserVipDao userVipDao;
|
||||
|
||||
@Value("${spring.profiles.active}")
|
||||
private String profiles;
|
||||
|
||||
private ReentrantReadWriteLock reentrantReadWriteLock = new ReentrantReadWriteLock(true);
|
||||
|
||||
public UserServiceImpl(@Lazy AliService aliService, UserInfoService userInfoService) {
|
||||
public UserServiceImpl(@Lazy AliService aliService, UserInfoService userInfoService, UserVipDao userVipDao) {
|
||||
this.aliService = aliService;
|
||||
this.userInfoService = userInfoService;
|
||||
this.userVipDao = userVipDao;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1419,7 +1420,34 @@ public class UserServiceImpl extends ServiceImpl<UserDao, UserEntity> implements
|
||||
|
||||
@Override
|
||||
public int userMessage(String date, int type, String qdCode, Integer vipType) {
|
||||
return baseMapper.userMessage(date, type, qdCode, vipType);
|
||||
DateTime dateTime;
|
||||
if (type == 0) {
|
||||
dateTime = DateUtil.beginOfDay(DateUtil.parseDate(date));
|
||||
|
||||
}else if (type == 1) {
|
||||
dateTime = DateUtil.beginOfMonth(DateUtil.parseDate(date));
|
||||
}else {
|
||||
dateTime = DateUtil.beginOfYear(DateUtil.parseDate(date));
|
||||
}
|
||||
|
||||
LambdaQueryWrapper<UserEntity> queryWrapper = new LambdaQueryWrapper<UserEntity>()
|
||||
.ge(UserEntity::getCreateTime, dateTime);
|
||||
if (StrUtil.isNotBlank(qdCode)) {
|
||||
queryWrapper.eq(UserEntity::getQdCode, qdCode);
|
||||
}
|
||||
|
||||
Set<Long> useridList = baseMapper.selectList(queryWrapper.select(UserEntity::getUserId))
|
||||
.stream().map(UserEntity::getUserId).collect(Collectors.toSet());
|
||||
if (useridList.isEmpty()) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
LambdaQueryWrapper<UserVip> vipLambdaQueryWrapper = new LambdaQueryWrapper<UserVip>().in(UserVip::getUserId, useridList)
|
||||
.eq(UserVip::getIsVip, 2);
|
||||
if (vipType != null) {
|
||||
vipLambdaQueryWrapper.eq(UserVip::getVipType, vipType);
|
||||
}
|
||||
return userVipDao.selectCount(vipLambdaQueryWrapper);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -22,8 +22,8 @@ public interface CourseDetailsDao extends BaseMapper<CourseDetails> {
|
||||
* @param price 全剧价格
|
||||
* @param wholesalePrice 10集价格
|
||||
*/
|
||||
@Cacheable(cacheNames = "courseSets" ,key = "#courseId")
|
||||
List<CourseDetailsSetVo> courseSets(@Param("courseId") Long courseId, @Param("collect") Long collect, Integer isPrice, BigDecimal price, BigDecimal wholesalePrice);
|
||||
@Cacheable(cacheNames = "courseSets", key = "#courseId")
|
||||
List<CourseDetailsSetVo> courseSets(@Param("courseId") Long courseId, Integer isPrice, BigDecimal price, BigDecimal wholesalePrice);
|
||||
|
||||
List<CourseDetails> findByCourseId(@Param("id") Long id, @Param("userId") Long userId);
|
||||
|
||||
@@ -41,7 +41,7 @@ public interface CourseDetailsDao extends BaseMapper<CourseDetails> {
|
||||
*/
|
||||
Map<String, Object> countCourse(Long courseId);
|
||||
|
||||
@Cacheable(cacheNames = "courseCount" ,key = "#courseId")
|
||||
@Cacheable(cacheNames = "courseCount", key = "#courseId")
|
||||
Integer countCourseByCourseId(Long courseId);
|
||||
|
||||
List<CourseDetails> countByCourseId();
|
||||
|
||||
@@ -34,7 +34,6 @@ import com.sqx.modules.course.entity.CourseUser;
|
||||
import com.sqx.modules.course.service.CourseDetailsService;
|
||||
import com.sqx.modules.course.vo.CourseDetailsIn;
|
||||
import com.sqx.modules.course.vo.CourseDetailsSetVo;
|
||||
import com.sqx.modules.course.vo.CourseDetailsVo;
|
||||
import com.sqx.modules.orders.dao.OrdersDao;
|
||||
import com.sqx.modules.orders.service.OrdersService;
|
||||
import com.sqx.modules.redisService.impl.RedisServiceImpl;
|
||||
@@ -53,7 +52,7 @@ import org.springframework.web.multipart.MultipartFile;
|
||||
import java.io.IOException;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
@@ -146,7 +145,7 @@ public class CourseDetailsServiceImpl extends ServiceImpl<CourseDetailsDao, Cour
|
||||
} else {
|
||||
course.setViewCounts(course.getViewCounts() + 1);
|
||||
}
|
||||
if (ApiAccessLimitUtil.isAccessAllowed("setCourseView:" + course.getCourseId(), "updateAuthCertInfo", 1, 600)) {
|
||||
if (ApiAccessLimitUtil.isAccessAllowed(course.getCourseId().toString(), "updateWeekCourseView", 1, 600)) {
|
||||
int courseViewCount = redisServiceImpl.getCourseWeekViewCount(course.getCourseId());
|
||||
course.setWeekView(courseViewCount);
|
||||
}
|
||||
@@ -179,9 +178,9 @@ public class CourseDetailsServiceImpl extends ServiceImpl<CourseDetailsDao, Cour
|
||||
}
|
||||
List<CourseDetailsSetVo> courseDetailsSetVos;
|
||||
if (freeWatch || courseUser != null) {
|
||||
courseDetailsSetVos = baseMapper.courseSets(courseId, collect == null ? 0L : 1L, 2, null, null);
|
||||
courseDetailsSetVos = baseMapper.courseSets(courseId,2, null, null);
|
||||
} else {
|
||||
courseDetailsSetVos = baseMapper.courseSets(courseId, collect == null ? 0L : 1L, 1, bean.getPrice(), bean.getWholesalePrice());
|
||||
courseDetailsSetVos = baseMapper.courseSets(courseId,1, bean.getPrice(), bean.getWholesalePrice());
|
||||
}
|
||||
if (sort != null && sort > 2) {
|
||||
startSort = sort - 3;
|
||||
@@ -196,6 +195,7 @@ public class CourseDetailsServiceImpl extends ServiceImpl<CourseDetailsDao, Cour
|
||||
if ((!freeWatch)) {
|
||||
detailsId = courseUserDao.selectUserCourseDetailsId(courseId, userId);
|
||||
}
|
||||
AtomicReference<CourseDetailsSetVo> current = new AtomicReference<>(new CourseDetailsSetVo());
|
||||
Set<Long> finalDetailsId = detailsId;
|
||||
int finalStartSort = startSort;
|
||||
int finalEndSort = endSort;
|
||||
@@ -203,6 +203,7 @@ public class CourseDetailsServiceImpl extends ServiceImpl<CourseDetailsDao, Cour
|
||||
//当前
|
||||
if (courseCollect != null && s.getCourseDetailsId().equals(courseCollect.getCourseDetailsId())) {
|
||||
s.setCurrent(1);
|
||||
current.set(s);
|
||||
}
|
||||
// 不免费 3集以后 (已买的不为空 并不在已买的包含)
|
||||
if (!freeWatch && s.getSort() > 3 && (CollectionUtil.isEmpty(finalDetailsId) || !finalDetailsId.contains(s.getCourseDetailsId()))) {
|
||||
@@ -216,12 +217,15 @@ public class CourseDetailsServiceImpl extends ServiceImpl<CourseDetailsDao, Cour
|
||||
});
|
||||
if (courseCollect == null) {
|
||||
courseDetailsSetVos.get(0).setCurrent(1);
|
||||
current.set(courseDetailsSetVos.get(0));
|
||||
}
|
||||
ThreadUtil.execAsync(() -> {
|
||||
setCourseView(bean);
|
||||
});
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("current", current.get());
|
||||
map.put("title", bean.getTitle());
|
||||
map.put("collect", collect == null ? 0L : 1L);
|
||||
map.put("list", courseDetailsSetVos);
|
||||
return new Result().put("data", map);
|
||||
}
|
||||
|
||||
@@ -1,12 +1,16 @@
|
||||
package com.sqx.modules.course.vo;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Data
|
||||
public class CourseDetailsSetVo {
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long courseId;
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long courseDetailsId;
|
||||
private String courseDetailsName;
|
||||
private Integer current = 0;
|
||||
|
||||
@@ -127,6 +127,7 @@ public class DiscSpinningServiceImpl extends ServiceImpl<DiscSpinningDao, DiscSp
|
||||
cashOut.setRate(0.00);
|
||||
cashOut.setUserType(1);
|
||||
cashOut.setCreateAt(DateUtil.now());
|
||||
cashOut.setUserType(1);
|
||||
cashOut.setWithdrawType(WithdrawTypeEnum.RED_ENVELOPE.getValue());
|
||||
|
||||
//最高提现金额
|
||||
@@ -136,7 +137,7 @@ public class DiscSpinningServiceImpl extends ServiceImpl<DiscSpinningDao, DiscSp
|
||||
cashOut.setStatus(4);
|
||||
String outOrderNo = AliPayOrderUtil.createOrderId();
|
||||
cashOut.setOrderNumber(outOrderNo);
|
||||
BaseResp baseResp = wuyouPay.extractOrder(outOrderNo, cashOut.getMoney(), cashOut.getZhifubao(), cashOut.getZhifubaoName());
|
||||
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,
|
||||
|
||||
@@ -24,6 +24,7 @@ import com.sqx.modules.invite.service.InviteService;
|
||||
import com.sqx.modules.sys.entity.SysUserEntity;
|
||||
import com.sqx.modules.sys.entity.SysUserMoneyDetails;
|
||||
import com.sqx.modules.sys.service.SysUserMoneyDetailsService;
|
||||
import com.sqx.modules.sys.service.SysUserMoneyService;
|
||||
import com.sqx.modules.sys.service.SysUserService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -52,6 +53,8 @@ public class InviteServiceImpl extends ServiceImpl<InviteDao, Invite> implements
|
||||
@Autowired
|
||||
private UserMoneyService userMoneyService;
|
||||
@Autowired
|
||||
private SysUserMoneyService sysUserMoneyService;
|
||||
@Autowired
|
||||
private UserMoneyDetailsService userMoneyDetailsService;
|
||||
@Autowired
|
||||
private InviteAwardService inviteAwardService;
|
||||
@@ -204,7 +207,7 @@ public class InviteServiceImpl extends ServiceImpl<InviteDao, Invite> implements
|
||||
// 金币
|
||||
int money = Integer.parseInt(commonInfoService.findOne(911).getValue());
|
||||
if (money > 0 && userEntity.getUserId() != 1) {
|
||||
userMoneyService.updateMoney(1, userEntity.getUserId(), money);
|
||||
// userMoneyService.updateMoney(1, userEntity.getUserId(), money);
|
||||
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
||||
userMoneyDetails.setUserId(userEntity.getUserId());
|
||||
userMoneyDetails.setType(1);
|
||||
@@ -220,8 +223,9 @@ public class InviteServiceImpl extends ServiceImpl<InviteDao, Invite> implements
|
||||
// 更新邀请人钱包
|
||||
|
||||
UserMoney userMoney = userMoneyService.selectUserMoneyByUserId(userEntity.getUserId());
|
||||
userMoney.setMoney(userMoney.getMoney() == null ? BigDecimal.valueOf(money) : userMoney.getMoney().add(BigDecimal.valueOf(money)));
|
||||
userMoney.setInviteIncomeCoin(userMoney.getInviteIncomeCoin() == null ? new BigDecimal(money) : userMoney.getInviteIncomeCoin().add(new BigDecimal(money)));
|
||||
userMoneyService.update(userMoney, new LambdaQueryWrapper<UserMoney>().eq(UserMoney::getUserId, userMoney.getUserId()).eq(UserMoney::getId, userMoney.getId()));
|
||||
userMoneyService.update(null, new LambdaQueryWrapper<UserMoney>().eq(UserMoney::getUserId, userMoney.getUserId()).eq(UserMoney::getId, userMoney.getId()));
|
||||
}
|
||||
|
||||
//助力活动
|
||||
@@ -365,7 +369,7 @@ public class InviteServiceImpl extends ServiceImpl<InviteDao, Invite> implements
|
||||
if (sumMoney.compareTo(BigDecimal.ZERO) <= 0) {
|
||||
return result;
|
||||
}
|
||||
userMoneyService.updateSysAmount(1, sysUserEntity.getUserId(), sumMoney.doubleValue());
|
||||
sysUserMoneyService.updateSysMoney(1, sysUserEntity.getUserId(), sumMoney.doubleValue());
|
||||
SysUserMoneyDetails userMoneyDetails = new SysUserMoneyDetails();
|
||||
userMoneyDetails.setSysUserId(sysUserEntity.getUserId());
|
||||
userMoneyDetails.setUserId(sysUserEntity.getUserId());
|
||||
|
||||
@@ -41,7 +41,8 @@ public class CashOutTask{
|
||||
String outOrderNo = AliPayOrderUtil.createOrderId();
|
||||
cashOut.setOrderNumber(outOrderNo);
|
||||
|
||||
BaseResp baseResp = wuyouPay.extractOrder(outOrderNo, cashOut.getMoney(), cashOut.getZhifubao(), cashOut.getZhifubaoName());
|
||||
boolean isUser = cashOut.getUserType() != 2;
|
||||
BaseResp baseResp = wuyouPay.extractOrder(outOrderNo, cashOut.getUserId(), isUser, cashOut.getMoney(), cashOut.getZhifubao(), cashOut.getZhifubaoName());
|
||||
if (baseResp.getStatus() != null && baseResp.getStatus().equals(2)) {
|
||||
cashOut.setState(1);
|
||||
} else {
|
||||
|
||||
@@ -53,7 +53,8 @@ public class CashOutTask2{
|
||||
cashOut.setState(4);
|
||||
String outOrderNo = AliPayOrderUtil.createOrderId();
|
||||
cashOut.setOrderNumber(outOrderNo);
|
||||
BaseResp baseResp = wuyouPay.extractOrder(outOrderNo, cashOut.getMoney(), cashOut.getZhifubao(), cashOut.getZhifubaoName());
|
||||
boolean isUser = cashOut.getUserType() != 2;
|
||||
BaseResp baseResp = wuyouPay.extractOrder(outOrderNo, cashOut.getUserId(), isUser, cashOut.getMoney(), cashOut.getZhifubao(), cashOut.getZhifubaoName());
|
||||
if (baseResp.getStatus() != null && baseResp.getStatus().equals(2)) {
|
||||
cashOut.setState(1);
|
||||
} else {
|
||||
|
||||
@@ -27,7 +27,7 @@ public class TempCashOutTask{
|
||||
logger.info("提现开始");
|
||||
List<CashOut> cashOuts = cashOutDao.selectTemp();
|
||||
for (CashOut cashOut : cashOuts) {
|
||||
BaseResp baseResp = wuyouPay.queryExtractOrder(cashOut.getOrderNumber(), cashOut.getMoney());
|
||||
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("success:{} ", cashOut.getOrderNumber());
|
||||
|
||||
@@ -32,8 +32,10 @@ import com.sqx.modules.pay.entity.PayDetails;
|
||||
import com.sqx.modules.pay.wuyou.BaseResp;
|
||||
import com.sqx.modules.pay.wuyou.WuyouPay;
|
||||
import com.sqx.modules.sys.entity.SysUserEntity;
|
||||
import com.sqx.modules.sys.entity.SysUserMoney;
|
||||
import com.sqx.modules.sys.entity.SysUserMoneyDetails;
|
||||
import com.sqx.modules.sys.service.SysUserMoneyDetailsService;
|
||||
import com.sqx.modules.sys.service.SysUserMoneyService;
|
||||
import com.sqx.modules.sys.service.SysUserService;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
@@ -69,6 +71,8 @@ public class TempOrdersTask {
|
||||
@Resource
|
||||
private UserMoneyService userMoneyService;
|
||||
@Resource
|
||||
private SysUserMoneyService sysUserMoneyService;
|
||||
@Resource
|
||||
private SysUserService sysUserService;
|
||||
@Resource
|
||||
private InviteDao inviteDao;
|
||||
@@ -114,7 +118,7 @@ public class TempOrdersTask {
|
||||
Orders orders = ordersDao.selectOne(new LambdaQueryWrapper<Orders>()
|
||||
.eq(Orders::getOrdersNo, details.getOrderId()));
|
||||
|
||||
BaseResp baseResp = wuyouPay.queryOrder(details.getTradeNo(), details.getMoney().toString(), "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1 Edg/131.0.0.0");
|
||||
BaseResp baseResp = wuyouPay.queryOrder(details.getTradeNo(), details.getUserId(), details.getMoney().toString(), "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1 Edg/131.0.0.0");
|
||||
logger.info("baseResp:{} ", JSONUtil.toJsonStr(baseResp));
|
||||
if (baseResp.getCode() == null || baseResp.getCode() != 200) {
|
||||
logger.info("code错误跳过");
|
||||
@@ -189,22 +193,6 @@ public class TempOrdersTask {
|
||||
ThreadUtil.execAsync(() -> {
|
||||
courseService.incrWeekPayCount(order.getCourseId());
|
||||
});
|
||||
//Map<String, Object> map = inviteService.updateInvite(byUser, DateUtil.now(), user.getUserId(), order.getPayMoney());
|
||||
// Object oneUserId = map.get("oneUserId");
|
||||
// if (oneUserId != null) {
|
||||
// order.setOneUserId(Long.parseLong(String.valueOf(oneUserId)));
|
||||
// order.setOneMoney(new BigDecimal(String.valueOf(map.get("oneMoney"))));
|
||||
// }
|
||||
// Object twoUserId = map.get("twoUserId");
|
||||
// if (twoUserId != null) {
|
||||
// order.setTwoUserId(Long.parseLong(String.valueOf(twoUserId)));
|
||||
// order.setTwoMoney(new BigDecimal(String.valueOf(map.get("twoMoney"))));
|
||||
// }
|
||||
// Object sysUserId = map.get("sysUserId");
|
||||
// if (sysUserId != null) {
|
||||
// order.setSysUserId(Long.parseLong(String.valueOf(sysUserId)));
|
||||
// order.setQdMoney(new BigDecimal(String.valueOf(map.get("qdMoney"))));
|
||||
// }
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@@ -254,14 +242,14 @@ public class TempOrdersTask {
|
||||
sysUser.getUserId(), sysUser.getUserId(), null, "[分享达标额外奖励]", 6, 1, 2,
|
||||
new BigDecimal(qdAward), "推广人员首次达标,额外奖励现金红包" + qdAward, 2);
|
||||
|
||||
userMoneyService.updateSysAmount(1, sysUser.getUserId(), Double.parseDouble(qdAward));
|
||||
sysUserMoneyService.updateSysMoney(1, sysUser.getUserId(), Double.parseDouble(qdAward));
|
||||
sysUserMoneyDetailsService.save(userMoneyDetails4);
|
||||
|
||||
UserMoney userMoney = userMoneyService.selectSysUserMoneyByUserId(sysUser.getSysUserId());
|
||||
userMoney.setInviteIncomeMoney(userMoney.getInviteIncomeMoney().add(new BigDecimal(qdAward)));
|
||||
userMoneyService.update(userMoney, new LambdaQueryWrapper<UserMoney>()
|
||||
.eq(UserMoney::getSysUserId, userMoney.getSysUserId())
|
||||
.eq(UserMoney::getId, userMoney.getId()));
|
||||
SysUserMoney sysUserMoney = sysUserMoneyService.selectSysUserMoneyByUserId(sysUser.getSysUserId());
|
||||
sysUserMoney.setInviteIncomeMoney(sysUserMoney.getInviteIncomeMoney().add(new BigDecimal(qdAward)));
|
||||
sysUserMoneyService.update(sysUserMoney, new LambdaQueryWrapper<SysUserMoney>()
|
||||
.eq(SysUserMoney::getUserId, sysUserMoney.getUserId())
|
||||
.eq(SysUserMoney::getId, sysUserMoney.getId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -134,10 +134,10 @@ public class OrdersController extends AbstractController {
|
||||
//日
|
||||
Double dayMoney = ordersService.selectOrdersMoney(1, 1, 1, dateTime, courseId, sysUserId);
|
||||
Map<String, Double> result = new HashMap<>();
|
||||
result.put("sumMoney", sumMoney);
|
||||
result.put("yearMoney", yearMoney);
|
||||
result.put("monthMoney", monthMoney);
|
||||
result.put("dayMoney", dayMoney);
|
||||
result.put("sumMoney", sumMoney == null ? 0 : sumMoney);
|
||||
result.put("yearMoney", yearMoney == null ? 0 : yearMoney);
|
||||
result.put("monthMoney", monthMoney == null ? 0 : monthMoney);
|
||||
result.put("dayMoney", dayMoney == null ? 0 : dayMoney);
|
||||
return Result.success().put("data", result);
|
||||
}
|
||||
|
||||
@@ -151,12 +151,12 @@ public class OrdersController extends AbstractController {
|
||||
//渠道
|
||||
Double qdMoney = ordersService.selectFenXiaoMoney(3, sysUserId, flag, time);
|
||||
//总分销
|
||||
Double sumMoney = ordersService.selectFenXiaoMoney(4, sysUserId, flag, time);
|
||||
// Double sumMoney = ordersService.selectFenXiaoMoney(4, sysUserId, flag, time);
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
result.put("oneMoney", oneMoney);
|
||||
result.put("twoMoney", twoMoney);
|
||||
result.put("qdMoney", qdMoney);
|
||||
result.put("sumMoney", sumMoney);
|
||||
result.put("sumMoney", oneMoney + twoMoney + qdMoney);
|
||||
return Result.success().put("data", result);
|
||||
}
|
||||
|
||||
|
||||
@@ -31,6 +31,9 @@ import com.sqx.modules.pay.entity.AliPayWithdrawModel;
|
||||
import com.sqx.modules.pay.entity.CashOut;
|
||||
import com.sqx.modules.pay.service.CashOutService;
|
||||
import com.sqx.modules.pay.service.PayDetailsService;
|
||||
import com.sqx.modules.sys.entity.SysUserMoneyDetails;
|
||||
import com.sqx.modules.sys.service.SysUserMoneyDetailsService;
|
||||
import com.sqx.modules.sys.service.SysUserMoneyService;
|
||||
import com.sqx.modules.utils.AmountCalUtils;
|
||||
import com.sqx.modules.utils.excel.ExcelData;
|
||||
import com.sqx.modules.utils.excel.ExportExcelUtils;
|
||||
@@ -86,6 +89,8 @@ public class CashController {
|
||||
@Autowired
|
||||
private UserMoneyDetailsService userMoneyDetailsService;
|
||||
@Autowired
|
||||
private SysUserMoneyDetailsService sysUserMoneyDetailsService;
|
||||
@Autowired
|
||||
private MessageService messageService;
|
||||
@Autowired
|
||||
private InviteMoneyDao inviteMoneyDao;
|
||||
@@ -93,6 +98,8 @@ public class CashController {
|
||||
private OrdersService ordersService;
|
||||
@Autowired
|
||||
private UserMoneyService userMoneyService;
|
||||
@Autowired
|
||||
private SysUserMoneyService sysUserMoneyService;
|
||||
private ReentrantReadWriteLock reentrantReadWriteLock = new ReentrantReadWriteLock(true);
|
||||
|
||||
@RequestMapping(value = "/sendMsgByUserId", method = RequestMethod.GET)
|
||||
@@ -460,18 +467,19 @@ public class CashController {
|
||||
}
|
||||
//将金币退还
|
||||
if (one.getSysUserId() != null) {
|
||||
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
||||
userMoneyDetails.setSysUserId(one.getSysUserId());
|
||||
userMoneyDetails.setTitle("[退款提醒]提现失败:" + one.getMoney() + ",退还手续费:" + one.getRate() + ",总退还:" + v);
|
||||
userMoneyDetails.setContent(content);
|
||||
userMoneyDetails.setType(1);
|
||||
SysUserMoneyDetails sysUserMoneyDetails = new SysUserMoneyDetails();
|
||||
sysUserMoneyDetails.setSysUserId(one.getSysUserId());
|
||||
sysUserMoneyDetails.setUserId(one.getSysUserId());
|
||||
sysUserMoneyDetails.setTitle("[退款提醒]提现失败:" + one.getMoney() + ",退还手续费:" + one.getRate() + ",总退还:" + v);
|
||||
sysUserMoneyDetails.setContent(content);
|
||||
sysUserMoneyDetails.setType(1);
|
||||
// ✅
|
||||
userMoneyDetails.setClassify(4);
|
||||
userMoneyDetails.setMoney(new BigDecimal(v));
|
||||
userMoneyDetails.setCreateTime(sdf.format(now));
|
||||
userMoneyDetails.setMoneyType(2);
|
||||
userMoneyDetailsService.save(userMoneyDetails);
|
||||
userMoneyService.updateSysMoney(1, userId, v);
|
||||
sysUserMoneyDetails.setClassify(4);
|
||||
sysUserMoneyDetails.setMoney(new BigDecimal(v));
|
||||
sysUserMoneyDetails.setCreateTime(sdf.format(now));
|
||||
sysUserMoneyDetails.setMoneyType(2);
|
||||
sysUserMoneyDetailsService.save(sysUserMoneyDetails);
|
||||
sysUserMoneyService.updateSysMoney(1, userId, v);
|
||||
} else {
|
||||
UserEntity userInfo = userService.queryByUserId(userId);
|
||||
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
||||
|
||||
@@ -124,7 +124,7 @@ public class WuyouController {
|
||||
return Result.success().put("data", data);
|
||||
}
|
||||
|
||||
BaseResp baseResp = wuyouPay.payOrder(payDetails.getTradeNo(), order.getPayMoney().toString(),
|
||||
BaseResp baseResp = wuyouPay.payOrder(payDetails.getTradeNo(), order.getUserId(), order.getPayMoney().toString(),
|
||||
request.getHeader("User-Agent"), String.format("%d-%d", order.getCourseId(), order.getCourseDetailsId()),
|
||||
payType);
|
||||
if (baseResp.getCode() == null) {
|
||||
@@ -154,7 +154,7 @@ public class WuyouController {
|
||||
return Result.success().put("data", 1);
|
||||
}
|
||||
|
||||
BaseResp baseResp = wuyouPay.queryOrder(payDetails.getTradeNo(), order.getPayMoney().toString(), request.getHeader("User-Agent"));
|
||||
BaseResp baseResp = wuyouPay.queryOrder(payDetails.getTradeNo(), order.getUserId(), order.getPayMoney().toString(), request.getHeader("User-Agent"));
|
||||
if (baseResp.getCode() == null || baseResp.getCode() != 200) {
|
||||
return Result.success().put("data", 0);
|
||||
}
|
||||
@@ -205,10 +205,24 @@ public class WuyouController {
|
||||
|
||||
log.info("无忧支付回调成功, 参数: {}", JSONObject.toJSONString(notifyDto));
|
||||
|
||||
String orderNo = notifyDto.getOut_trade_no();
|
||||
long userId = 0L;
|
||||
String[] split = orderNo.split("-");
|
||||
if (split.length != 2) {
|
||||
log.error("无忧支付回调订单号错误, 参数: {}", JSONObject.toJSONString(notifyDto));
|
||||
return "success";
|
||||
}
|
||||
orderNo = split[0];
|
||||
userId = Long.parseLong(split[1]);
|
||||
|
||||
DateTime offsetMinute = DateUtil.offsetMinute(new Date(), -30);
|
||||
String format = DateUtil.format(offsetMinute, "yyyy-MM-dd HH:mm:ss");
|
||||
List<PayDetails> details = payDetailsDao.selectList(new LambdaQueryWrapper<PayDetails>()
|
||||
.eq(PayDetails::getTradeNo, notifyDto.getOut_trade_no()).ge(PayDetails::getCreateTime, format));
|
||||
LambdaQueryWrapper<PayDetails> detailsLambdaQueryWrapper = new LambdaQueryWrapper<PayDetails>()
|
||||
.eq(PayDetails::getTradeNo, orderNo).ge(PayDetails::getCreateTime, format);
|
||||
if (userId != 0) {
|
||||
detailsLambdaQueryWrapper.eq(PayDetails::getUserId, userId);
|
||||
}
|
||||
List<PayDetails> details = payDetailsDao.selectList(detailsLambdaQueryWrapper);
|
||||
if (details.isEmpty()) {
|
||||
log.error("无忧支付回调订单不存在, 参数: {}", JSONObject.toJSONString(notifyDto));
|
||||
return "success";
|
||||
@@ -265,7 +279,29 @@ public class WuyouController {
|
||||
log.error("无忧支付提现回调签名错误, 参数: {},签名结果:{}", JSONObject.toJSONString(notifyDto), sign);
|
||||
// return "签名错误";
|
||||
}
|
||||
CashOut cashOut = cashOutDao.selectOne(new QueryWrapper<CashOut>().eq("order_number", notifyDto.getOut_trade_no()));
|
||||
|
||||
String orderNo = notifyDto.getOut_trade_no();
|
||||
long userId = 0L;
|
||||
String[] split = orderNo.split("-");
|
||||
if (split.length != 2) {
|
||||
log.error("无忧支付回调订单号错误, 参数: {}", JSONObject.toJSONString(notifyDto));
|
||||
return;
|
||||
}
|
||||
orderNo = split[0];
|
||||
String sub = split[1];
|
||||
String[] split1 = sub.split(":");
|
||||
if (split1.length != 2) {
|
||||
log.error("无忧支付回调订单号错误, 参数: {}", JSONObject.toJSONString(notifyDto));
|
||||
return;
|
||||
}
|
||||
userId = Long.parseLong(split1[0]);
|
||||
|
||||
QueryWrapper<CashOut> orderNumber = new QueryWrapper<CashOut>().eq("order_number", orderNo);
|
||||
if (userId != 0) {
|
||||
orderNumber.eq("user_id", userId);
|
||||
}
|
||||
|
||||
CashOut cashOut = cashOutDao.selectOne(orderNumber);
|
||||
if (cashOut != null) {
|
||||
if ("2".equals(notifyDto.getStatus())) {
|
||||
cashOut.setState(1);
|
||||
|
||||
@@ -9,6 +9,7 @@ import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* @author fang
|
||||
@@ -46,4 +47,6 @@ public interface CashOutDao extends BaseMapper<CashOut> {
|
||||
BigDecimal selectSumMoney(@Param("userId") Long userId, @Param("state") Integer state);
|
||||
|
||||
List<CashOut> selectSumByUserIdList(ArrayList<Long> userIdList, Integer state);
|
||||
|
||||
List<CashOut> countByUserIdList(Set<Long> userIdList);
|
||||
}
|
||||
|
||||
@@ -36,6 +36,10 @@ import com.sqx.modules.pay.service.CashOutService;
|
||||
import com.sqx.modules.pay.wuyou.BaseResp;
|
||||
import com.sqx.modules.pay.wuyou.WuyouPay;
|
||||
import com.sqx.modules.sys.entity.SysUserEntity;
|
||||
import com.sqx.modules.sys.entity.SysUserMoney;
|
||||
import com.sqx.modules.sys.entity.SysUserMoneyDetails;
|
||||
import com.sqx.modules.sys.service.SysUserMoneyDetailsService;
|
||||
import com.sqx.modules.sys.service.SysUserMoneyService;
|
||||
import com.sqx.modules.sys.service.SysUserService;
|
||||
import com.sqx.modules.utils.AliPayOrderUtil;
|
||||
import com.sqx.modules.utils.AmountCalUtils;
|
||||
@@ -87,8 +91,12 @@ public class CashOutServiceImpl extends ServiceImpl<CashOutDao, CashOut> impleme
|
||||
@Autowired
|
||||
private UserMoneyService userMoneyService;
|
||||
@Autowired
|
||||
private SysUserMoneyService sysUserMoneyService;
|
||||
@Autowired
|
||||
private UserMoneyDetailsService userMoneyDetailsService;
|
||||
@Autowired
|
||||
private SysUserMoneyDetailsService sysUserMoneyDetailsService;
|
||||
@Autowired
|
||||
private InviteMoneyService inviteMoneyService;
|
||||
@Autowired
|
||||
private SysUserService sysUserService;
|
||||
@@ -118,7 +126,7 @@ public class CashOutServiceImpl extends ServiceImpl<CashOutDao, CashOut> impleme
|
||||
}
|
||||
|
||||
PageHelper.startPage(page, limit);
|
||||
List<CashOut> cashOutList = list(queryWrapper);
|
||||
List<CashOut> cashOutList = list(queryWrapper.eq(CashOut::getUserType, 1).orderByDesc(CashOut::getCreateAt));
|
||||
|
||||
if (!isApp) {
|
||||
ArrayList<Long> userIdList = new ArrayList<>();
|
||||
@@ -414,64 +422,65 @@ public class CashOutServiceImpl extends ServiceImpl<CashOutDao, CashOut> impleme
|
||||
@Override
|
||||
@Transactional
|
||||
public Result sysCashMoney(Long userId, Double money) {
|
||||
if (money == null || money <= 0.00) {
|
||||
return Result.error("请不要输入小于0的数字,请输入正确的提现金币!");
|
||||
}
|
||||
//最低提现金币
|
||||
CommonInfo one = commonInfoService.findOne(112);
|
||||
if (one != null && money < Double.parseDouble(one.getValue())) {
|
||||
return Result.error("输入金币不满足最低提现金币,请重新输入!");
|
||||
}
|
||||
//最高提现金币
|
||||
CommonInfo one2 = commonInfoService.findOne(153);
|
||||
if (one2 != null && money >= Double.parseDouble(one2.getValue())) {
|
||||
return Result.error(-100, "输入金币过大,不能大于" + one2.getValue() + ",请重新输入!");
|
||||
}
|
||||
//手续费
|
||||
CommonInfo one1 = commonInfoService.findOne(152);
|
||||
double mul = AmountCalUtils.mul(money, Double.parseDouble(one1.getValue()));
|
||||
if (mul < 0.01) {
|
||||
mul = 0.01;
|
||||
}
|
||||
UserMoney userMoney = userMoneyService.selectSysUserMoneyByUserId(userId);
|
||||
|
||||
SysUserEntity sysUserEntity = sysUserService.getById(userId);
|
||||
//提现判断金币是否足够 金币=提现金币+手续费
|
||||
double moneySum = AmountCalUtils.add(new BigDecimal(money), new BigDecimal(mul)).doubleValue();
|
||||
// 用户金币足够
|
||||
if (userMoney.getMoney().doubleValue() >= moneySum) {
|
||||
//扣除可提现金币
|
||||
userMoneyService.updateSysMoney(2, userId, moneySum);
|
||||
//增加金币操作记录
|
||||
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
||||
userMoneyDetails.setSysUserId(userId);
|
||||
userMoneyDetails.setTitle("提现:" + money);
|
||||
userMoneyDetails.setContent("提现:" + money + ",手续费:" + mul + ",总计:" + moneySum);
|
||||
userMoneyDetails.setType(2);
|
||||
// ✅
|
||||
userMoneyDetails.setClassify(4);
|
||||
userMoneyDetails.setMoney(new BigDecimal(moneySum));
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
userMoneyDetails.setCreateTime(sdf.format(new Date()));
|
||||
userMoneyDetails.setMoneyType(1);
|
||||
userMoneyDetailsService.save(userMoneyDetails);
|
||||
CashOut cashOut = new CashOut();
|
||||
cashOut.setState(0);
|
||||
cashOut.setZhifubao(sysUserEntity.getZhiFuBao());
|
||||
cashOut.setZhifubaoName(sysUserEntity.getZhiFuBaoName());
|
||||
cashOut.setMoney(money.toString());
|
||||
cashOut.setCreateAt(sdf.format(new Date()));
|
||||
cashOut.setUserId(sysUserEntity.getUserId());
|
||||
cashOut.setRate(mul);
|
||||
cashOut.setOrderNumber(String.valueOf(System.currentTimeMillis()));
|
||||
cashOut.setSysUserId(userId);
|
||||
cashOut.setUserType(2);
|
||||
baseMapper.insert(cashOut);
|
||||
// inviteMoneyDao.updateInviteMoneyCashOut(1,money,userId);
|
||||
return Result.success("提现成功,将在三个工作日内到账,请耐心等待!");
|
||||
} else {
|
||||
return Result.error("金币不足,请输入正确的提现金币!");
|
||||
}
|
||||
// if (money == null || money <= 0.00) {
|
||||
// return Result.error("请不要输入小于0的数字,请输入正确的提现金币!");
|
||||
// }
|
||||
// //最低提现金币
|
||||
// CommonInfo one = commonInfoService.findOne(112);
|
||||
// if (one != null && money < Double.parseDouble(one.getValue())) {
|
||||
// return Result.error("输入金币不满足最低提现金币,请重新输入!");
|
||||
// }
|
||||
// //最高提现金币
|
||||
// CommonInfo one2 = commonInfoService.findOne(153);
|
||||
// if (one2 != null && money >= Double.parseDouble(one2.getValue())) {
|
||||
// return Result.error(-100, "输入金币过大,不能大于" + one2.getValue() + ",请重新输入!");
|
||||
// }
|
||||
// //手续费
|
||||
// CommonInfo one1 = commonInfoService.findOne(152);
|
||||
// double mul = AmountCalUtils.mul(money, Double.parseDouble(one1.getValue()));
|
||||
// if (mul < 0.01) {
|
||||
// mul = 0.01;
|
||||
// }
|
||||
// SysUserMoney sysUserMoney = sysUserMoneyService.selectSysUserMoneyByUserId(userId);
|
||||
//
|
||||
// SysUserEntity sysUserEntity = sysUserService.getById(userId);
|
||||
// //提现判断金币是否足够 金币=提现金币+手续费
|
||||
// double moneySum = AmountCalUtils.add(new BigDecimal(money), new BigDecimal(mul)).doubleValue();
|
||||
// // 用户金币足够
|
||||
// if (sysUserMoney.getMoney().doubleValue() >= moneySum) {
|
||||
// //扣除可提现金币
|
||||
// sysUserMoneyService.updateSysMoney(2, userId, moneySum);
|
||||
// //增加金币操作记录
|
||||
// UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
||||
// userMoneyDetails.setSysUserId(userId);
|
||||
// userMoneyDetails.setTitle("提现:" + money);
|
||||
// userMoneyDetails.setContent("提现:" + money + ",手续费:" + mul + ",总计:" + moneySum);
|
||||
// userMoneyDetails.setType(2);
|
||||
// // ✅
|
||||
// userMoneyDetails.setClassify(4);
|
||||
// userMoneyDetails.setMoney(new BigDecimal(moneySum));
|
||||
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
// userMoneyDetails.setCreateTime(sdf.format(new Date()));
|
||||
// userMoneyDetails.setMoneyType(1);
|
||||
// userMoneyDetailsService.save(userMoneyDetails);
|
||||
// CashOut cashOut = new CashOut();
|
||||
// cashOut.setState(0);
|
||||
// cashOut.setZhifubao(sysUserEntity.getZhiFuBao());
|
||||
// cashOut.setZhifubaoName(sysUserEntity.getZhiFuBaoName());
|
||||
// cashOut.setMoney(money.toString());
|
||||
// cashOut.setCreateAt(sdf.format(new Date()));
|
||||
// cashOut.setUserId(sysUserEntity.getUserId());
|
||||
// cashOut.setRate(mul);
|
||||
// cashOut.setOrderNumber(String.valueOf(System.currentTimeMillis()));
|
||||
// cashOut.setSysUserId(userId);
|
||||
// cashOut.setUserType(2);
|
||||
// baseMapper.insert(cashOut);
|
||||
//// inviteMoneyDao.updateInviteMoneyCashOut(1,money,userId);
|
||||
// return Result.success("提现成功,将在三个工作日内到账,请耐心等待!");
|
||||
// } else {
|
||||
// return Result.error("金币不足,请输入正确的提现金币!");
|
||||
// }
|
||||
return Result.success("作废");
|
||||
}
|
||||
|
||||
|
||||
@@ -526,11 +535,13 @@ public class CashOutServiceImpl extends ServiceImpl<CashOutDao, CashOut> impleme
|
||||
CashOut cashOut = new CashOut();
|
||||
cashOut.setIsOut(false);
|
||||
cashOut.setMoney(money.toString());
|
||||
cashOut.setUserId(userId);
|
||||
if (isSys) {
|
||||
cashOut.setSysUserId(userId);
|
||||
cashOut.setUserType(2);
|
||||
} else {
|
||||
cashOut.setUserId(userId);
|
||||
cashOut.setUserType(1);
|
||||
}
|
||||
|
||||
cashOut.setZhifubao(alipayAccount);
|
||||
cashOut.setZhifubaoName(alipayName);
|
||||
|
||||
@@ -542,49 +553,77 @@ public class CashOutServiceImpl extends ServiceImpl<CashOutDao, CashOut> impleme
|
||||
|
||||
String outOrderNo = AliPayOrderUtil.createOrderId();
|
||||
cashOut.setOrderNumber(outOrderNo);
|
||||
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
||||
userMoneyDetails.setUserId(userId);
|
||||
userMoneyDetails.setTitle("[提现]");
|
||||
userMoneyDetails.setContent("提现:" + money + "元");
|
||||
userMoneyDetails.setType(2);
|
||||
userMoneyDetails.setState(2);
|
||||
// ✅
|
||||
userMoneyDetails.setClassify(4);
|
||||
userMoneyDetails.setMoney(new BigDecimal(money));
|
||||
userMoneyDetails.setCreateTime(DateUtil.now());
|
||||
userMoneyDetails.setMoneyType(1);
|
||||
UserMoney userMoney;
|
||||
if (isSys) {
|
||||
userMoney = userMoneyService.selectSysUserMoneyByUserId(userId);
|
||||
} else {
|
||||
userMoney = userMoneyService.selectUserMoneyByUserId(userId);
|
||||
}
|
||||
//提现判断余额是否足够
|
||||
if (userMoney.getAmount().doubleValue() < money) {
|
||||
return Result.success("可提现余额不足!");
|
||||
}
|
||||
SysUserMoneyDetails sysUserMoneyDetails = new SysUserMoneyDetails();
|
||||
sysUserMoneyDetails.setUserId(userId);
|
||||
sysUserMoneyDetails.setSysUserId(userId);
|
||||
sysUserMoneyDetails.setTitle("[提现]");
|
||||
sysUserMoneyDetails.setContent("提现:" + money + "元");
|
||||
sysUserMoneyDetails.setType(2);
|
||||
sysUserMoneyDetails.setState(2);
|
||||
// ✅
|
||||
sysUserMoneyDetails.setClassify(4);
|
||||
sysUserMoneyDetails.setMoney(new BigDecimal(money));
|
||||
sysUserMoneyDetails.setCreateTime(DateUtil.now());
|
||||
sysUserMoneyDetails.setMoneyType(1);
|
||||
SysUserMoney sysUserMoney = sysUserMoneyService.selectSysUserMoneyByUserId(userId);
|
||||
//提现判断余额是否足够
|
||||
if (sysUserMoney.getMoney().doubleValue() < money) {
|
||||
return Result.success("可提现余额不足!");
|
||||
}
|
||||
if (wuyouPay.checkCanCash(userId, WithdrawTypeEnum.MANUAL, new BigDecimal(money.toString()))) {
|
||||
cashOut.setStatus(4);
|
||||
BaseResp baseResp = wuyouPay.extractOrder(outOrderNo, cashOut.getUserId(), false, cashOut.getMoney(), cashOut.getZhifubao(), cashOut.getZhifubaoName());
|
||||
if (baseResp.getStatus() != null && (baseResp.getStatus().equals(2) || baseResp.getStatus().equals(10000))) {
|
||||
sysUserMoneyDetails.setContent("成功提现:" + money);
|
||||
cashOut.setState(1);
|
||||
}
|
||||
|
||||
if (wuyouPay.checkCanCash(userId, WithdrawTypeEnum.MANUAL, new BigDecimal(money.toString()))) {
|
||||
cashOut.setStatus(4);
|
||||
BaseResp baseResp = wuyouPay.extractOrder(outOrderNo, cashOut.getMoney(), cashOut.getZhifubao(), cashOut.getZhifubaoName());
|
||||
if (baseResp.getStatus() != null && (baseResp.getStatus().equals(2) || baseResp.getStatus().equals(10000))) {
|
||||
if (baseResp.getErrorMsg() != null) {
|
||||
return Result.error(baseResp.getErrorMsg());
|
||||
}
|
||||
} else {
|
||||
sysUserMoneyDetails.setContent("成功提现:" + money);
|
||||
cashOut.setState(3);
|
||||
}
|
||||
|
||||
sysUserMoneyDetailsService.save(sysUserMoneyDetails);
|
||||
baseMapper.insert(cashOut);
|
||||
sysUserMoneyService.updateSysMoney(2, userId, money);
|
||||
} else {
|
||||
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
|
||||
userMoneyDetails.setUserId(userId);
|
||||
userMoneyDetails.setTitle("[提现]");
|
||||
userMoneyDetails.setContent("提现:" + money + "元");
|
||||
userMoneyDetails.setType(2);
|
||||
userMoneyDetails.setState(2);
|
||||
// ✅
|
||||
userMoneyDetails.setClassify(4);
|
||||
userMoneyDetails.setMoney(new BigDecimal(money));
|
||||
userMoneyDetails.setCreateTime(DateUtil.now());
|
||||
userMoneyDetails.setMoneyType(1);
|
||||
UserMoney userMoney = userMoneyService.selectUserMoneyByUserId(userId);
|
||||
//提现判断余额是否足够
|
||||
if (userMoney.getAmount().doubleValue() < money) {
|
||||
return Result.success("可提现余额不足!");
|
||||
}
|
||||
if (wuyouPay.checkCanCash(userId, WithdrawTypeEnum.MANUAL, new BigDecimal(money.toString()))) {
|
||||
cashOut.setStatus(4);
|
||||
BaseResp baseResp = wuyouPay.extractOrder(outOrderNo, cashOut.getUserId(), true, cashOut.getMoney(), cashOut.getZhifubao(), cashOut.getZhifubaoName());
|
||||
if (baseResp.getStatus() != null && (baseResp.getStatus().equals(2) || baseResp.getStatus().equals(10000))) {
|
||||
userMoneyDetails.setContent("成功提现:" + money);
|
||||
cashOut.setState(1);
|
||||
}
|
||||
|
||||
if (baseResp.getErrorMsg() != null) {
|
||||
return Result.error(baseResp.getErrorMsg());
|
||||
}
|
||||
} else {
|
||||
userMoneyDetails.setContent("成功提现:" + money);
|
||||
cashOut.setState(1);
|
||||
cashOut.setState(3);
|
||||
}
|
||||
|
||||
if (baseResp.getErrorMsg() != null) {
|
||||
return Result.error(baseResp.getErrorMsg());
|
||||
}
|
||||
} else {
|
||||
userMoneyDetails.setContent("成功提现:" + money);
|
||||
cashOut.setState(3);
|
||||
}
|
||||
|
||||
userMoneyDetailsService.save(userMoneyDetails);
|
||||
baseMapper.insert(cashOut);
|
||||
if (isSys) {
|
||||
userMoneyService.updateSysAmount(2, userId, money);
|
||||
} else {
|
||||
userMoneyDetailsService.save(userMoneyDetails);
|
||||
baseMapper.insert(cashOut);
|
||||
userMoneyService.updateAmount(2, userId, money);
|
||||
}
|
||||
return Result.success("提现成功,将在三个工作日内到账,请耐心等待!");
|
||||
@@ -594,7 +633,52 @@ public class CashOutServiceImpl extends ServiceImpl<CashOutDao, CashOut> impleme
|
||||
public PageUtils auditPage(Map<String, Object> params) {
|
||||
PageHelper.startPage(ParamPageUtils.getPageNum(params), ParamPageUtils.getPageSize(params));
|
||||
CashOut cashOut = BeanUtil.toBean(params, CashOut.class);
|
||||
List<CashOut> page = baseMapper.selectCashOutPage(cashOut, false);
|
||||
|
||||
LambdaQueryWrapper<CashOut> queryWrapper = new LambdaQueryWrapper<>();
|
||||
if (cashOut.getUserId() != null) {
|
||||
queryWrapper.eq(CashOut::getUserId, cashOut.getUserId());
|
||||
}
|
||||
if (StrUtil.isNotBlank(cashOut.getUserName())) {
|
||||
queryWrapper.like(CashOut::getUserName, cashOut.getUserName());
|
||||
}
|
||||
if (StrUtil.isNotBlank(cashOut.getZhifubaoName())) {
|
||||
queryWrapper.like(CashOut::getZhifubaoName, cashOut.getZhifubaoName());
|
||||
}
|
||||
if (StrUtil.isNotBlank(cashOut.getZhifubao())) {
|
||||
queryWrapper.like(CashOut::getZhifubao, cashOut.getZhifubao());
|
||||
}
|
||||
if (cashOut.getUserType() != null) {
|
||||
queryWrapper.eq(CashOut::getUserType, cashOut.getUserType());
|
||||
}
|
||||
if (cashOut.getState() != null) {
|
||||
queryWrapper.eq(CashOut::getState, cashOut.getState());
|
||||
}
|
||||
|
||||
if (StrUtil.isNotBlank(cashOut.getStartTime()) && StrUtil.isNotBlank(cashOut.getEndTime())) {
|
||||
queryWrapper.between(CashOut::getCreateAt, cashOut.getStartTime(), cashOut.getEndTime());
|
||||
}else if (StrUtil.isNotBlank(cashOut.getStartTime())) {
|
||||
queryWrapper.ge(CashOut::getCreateAt, cashOut.getStartTime());
|
||||
}else if (StrUtil.isNotBlank(cashOut.getEndTime())) {
|
||||
queryWrapper.le(CashOut::getCreateAt, cashOut.getEndTime());
|
||||
}
|
||||
|
||||
queryWrapper.orderByDesc(CashOut::getCreateAt);
|
||||
List<CashOut> page = list(queryWrapper);
|
||||
|
||||
if (!page.isEmpty()) {
|
||||
Set<Long> userIdList = page.stream().map(CashOut::getUserId).collect(Collectors.toSet());
|
||||
Map<Long, CashOut> countInfoMap = cashOutDao.countByUserIdList(userIdList).stream().collect(Collectors.toMap(CashOut::getUserId, item -> item));
|
||||
page.forEach(item -> {
|
||||
CashOut countInfo = countInfoMap.get(item.getUserId());
|
||||
if (countInfo != null) {
|
||||
item.setTotal(countInfo.getTotal());
|
||||
item.setCount(countInfo.getCount());
|
||||
item.setVerifyCount(countInfo.getVerifyCount());
|
||||
item.setVerifyTotal(countInfo.getVerifyTotal());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
PageInfo<CashOut> pageInfo = new PageInfo<>(page);
|
||||
return PageUtils.page(pageInfo);
|
||||
}
|
||||
@@ -602,7 +686,6 @@ public class CashOutServiceImpl extends ServiceImpl<CashOutDao, CashOut> impleme
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void audit(CashOut cashOut) {
|
||||
long id = cashOut.getId();
|
||||
Integer isAgree = cashOut.getIsAgree();
|
||||
if (isAgree == null) {
|
||||
throw new SqxException("请选择同意或者拒绝!");
|
||||
@@ -610,7 +693,7 @@ public class CashOutServiceImpl extends ServiceImpl<CashOutDao, CashOut> impleme
|
||||
if (isAgree == 0 && StrUtil.isBlank(cashOut.getRefund())) {
|
||||
throw new SqxException("请输入拒绝原因!");
|
||||
}
|
||||
CashOut entity = baseMapper.selectById(id);
|
||||
CashOut entity = baseMapper.selectOne(new LambdaQueryWrapper<CashOut>().eq(CashOut::getUserId, cashOut.getUserId()).eq(CashOut::getId, cashOut.getId()));
|
||||
if (entity == null) {
|
||||
throw new SqxException("提现申请不存在!");
|
||||
}
|
||||
@@ -624,18 +707,21 @@ public class CashOutServiceImpl extends ServiceImpl<CashOutDao, CashOut> impleme
|
||||
entity.setRefund(cashOut.getRefund());
|
||||
}
|
||||
|
||||
boolean isSysUser = entity.getSysUserId() != null;
|
||||
boolean isUser = true;
|
||||
if (entity.getUserType() == 2) {
|
||||
isUser = false;
|
||||
}
|
||||
|
||||
if (isSysUser) {
|
||||
SysUserEntity sysUserEntity = sysUserService.getById(entity.getSysUserId());
|
||||
if (sysUserEntity == null) {
|
||||
throw new SqxException("提现代理信息不存在!");
|
||||
}
|
||||
} else {
|
||||
if (isUser) {
|
||||
UserEntity userEntity = userService.selectUserById(entity.getUserId());
|
||||
if (userEntity == null) {
|
||||
throw new SqxException("提现用户信息不存在!");
|
||||
}
|
||||
} else {
|
||||
SysUserEntity sysUserEntity = sysUserService.getById(entity.getSysUserId());
|
||||
if (sysUserEntity == null) {
|
||||
throw new SqxException("提现代理信息不存在!");
|
||||
}
|
||||
}
|
||||
|
||||
if (isAgree == 0) {
|
||||
@@ -643,13 +729,13 @@ public class CashOutServiceImpl extends ServiceImpl<CashOutDao, CashOut> impleme
|
||||
return;
|
||||
}
|
||||
entity.setState(4);
|
||||
baseMapper.updateById(entity);
|
||||
baseMapper.update(entity, new LambdaQueryWrapper<CashOut>().eq(CashOut::getUserId, entity.getUserId()).eq(CashOut::getId, entity.getId()));
|
||||
if (StrUtil.isBlank(entity.getOrderNumber())) {
|
||||
String outOrderNo = AliPayOrderUtil.createOrderId();
|
||||
entity.setOrderNumber(outOrderNo);
|
||||
}
|
||||
// 执行提现操作
|
||||
BaseResp baseResp = wuyouPay.extractOrderForAudit(entity.getOrderNumber(), entity.getMoney(), entity.getZhifubao(), entity.getZhifubaoName());
|
||||
BaseResp baseResp = wuyouPay.extractOrderForAudit(entity.getOrderNumber(), entity.getUserId(), isUser, entity.getMoney(), entity.getZhifubao(), entity.getZhifubaoName());
|
||||
if (baseResp.getStatus() != null && (baseResp.getStatus().equals(2) || baseResp.getStatus().equals(10000))) {
|
||||
entity.setState(1);
|
||||
} else if (StringUtils.isNotBlank(baseResp.getErrorMsg())) {
|
||||
@@ -665,11 +751,18 @@ public class CashOutServiceImpl extends ServiceImpl<CashOutDao, CashOut> impleme
|
||||
entity.setRefund("提现失败,请检查支付宝账号与收款人姓名后,重试。");
|
||||
backCashAmount(entity);
|
||||
}
|
||||
baseMapper.updateById(entity);
|
||||
updateByUserId(entity);
|
||||
}
|
||||
|
||||
public void updateByUserId(CashOut entity) {
|
||||
if (entity.getUserId() == null) {
|
||||
throw new SqxException("cashOut修改失败: userId必须传递");
|
||||
}
|
||||
baseMapper.update(entity, new LambdaQueryWrapper<CashOut>().eq(CashOut::getUserId, entity.getUserId()).eq(CashOut::getId, entity.getId()));
|
||||
}
|
||||
|
||||
private void backCashAmount(CashOut entity) {
|
||||
baseMapper.updateById(entity);
|
||||
updateByUserId(entity);
|
||||
UserMoneyDetails userMoneyDetails = new UserMoneyDetails(
|
||||
entity.getUserId(), entity.getSysUserId(), null, "[提现退款]", 4, 1, 2,
|
||||
new BigDecimal(entity.getMoney()), "提现失败,自动退款" + entity.getMoney() + "元", 1, entity.getId());
|
||||
|
||||
@@ -41,7 +41,7 @@ public class WuyouPay {
|
||||
this.commonInfoService = commonInfoService;
|
||||
}
|
||||
|
||||
public BaseResp payOrder(String orderNo, String amount, String userAgent, String allId, String payType) {
|
||||
public BaseResp payOrder(String orderNo, Long userId, String amount, String userAgent, String allId, String payType) {
|
||||
String payConfig = commonInfoService.findOne(926).getValue();
|
||||
if (!"1".equals(payConfig)) {
|
||||
BaseResp baseResp = new BaseResp();
|
||||
@@ -51,7 +51,7 @@ public class WuyouPay {
|
||||
Map<String, Object> params = getBaseParams();
|
||||
params.put("type", "6001");
|
||||
params.put("is_code", "1");
|
||||
params.put("out_trade_no", orderNo);
|
||||
params.put("out_trade_no", String.format("%s-%s", orderNo, userId));
|
||||
params.put("total", amount);
|
||||
params.put("notify_url", notifyUrl);
|
||||
|
||||
@@ -68,9 +68,9 @@ public class WuyouPay {
|
||||
return JSONObject.parseObject(body, BaseResp.class);
|
||||
}
|
||||
|
||||
public BaseResp queryOrder(String orderNo, String amount, String userAgent) {
|
||||
public BaseResp queryOrder(String orderNo, Long userId, String amount, String userAgent) {
|
||||
Map<String, Object> params = getBaseParams();
|
||||
params.put("out_trade_no", orderNo);
|
||||
params.put("out_trade_no", String.format("%s-%s", orderNo, userId));
|
||||
params.put("total", amount);
|
||||
|
||||
String sign = Encrypt.getParamsSign(params);
|
||||
@@ -116,7 +116,7 @@ public class WuyouPay {
|
||||
* @param account 支付宝账号
|
||||
* @param userName 支付宝名称
|
||||
*/
|
||||
public BaseResp extractOrder(String outOrderNo, String amount, String account, String userName) {
|
||||
public BaseResp extractOrder(String outOrderNo, Long userId, boolean isUser, String amount, String account, String userName) {
|
||||
String payConfig = commonInfoService.findOne(927).getValue();
|
||||
if (!"1".equals(payConfig)) {
|
||||
BaseResp baseResp = new BaseResp();
|
||||
@@ -125,7 +125,7 @@ public class WuyouPay {
|
||||
}
|
||||
Map<String, Object> params = getBaseParams();
|
||||
|
||||
params.put("out_trade_no", outOrderNo);
|
||||
params.put("out_trade_no", String.format("%s-%s:%s", outOrderNo, userId, isUser ? "us" : "dl"));
|
||||
params.put("total", amount);
|
||||
params.put("bank_card", account);
|
||||
params.put("bank_account_name", userName);
|
||||
@@ -151,10 +151,10 @@ public class WuyouPay {
|
||||
* @param account 支付宝账号
|
||||
* @param userName 支付宝名称
|
||||
*/
|
||||
public BaseResp extractOrderForAudit(String outOrderNo, String amount, String account, String userName) {
|
||||
public BaseResp extractOrderForAudit(String outOrderNo, Long userId, boolean isUser, String amount, String account, String userName) {
|
||||
Map<String, Object> params = getBaseParams();
|
||||
|
||||
params.put("out_trade_no", outOrderNo);
|
||||
params.put("out_trade_no", String.format("%s-%s:%s", outOrderNo, userId, isUser ? "us" : "dl"));
|
||||
params.put("total", amount);
|
||||
params.put("bank_card", account);
|
||||
params.put("bank_account_name", userName);
|
||||
@@ -174,9 +174,9 @@ public class WuyouPay {
|
||||
return JSONObject.parseObject(body, BaseResp.class);
|
||||
}
|
||||
|
||||
public BaseResp queryExtractOrder(String outOrderNo, String amount) {
|
||||
public BaseResp queryExtractOrder(String outOrderNo, Long userId, boolean isUser, String amount) {
|
||||
Map<String, Object> params = getBaseParams();
|
||||
params.put("out_trade_no", outOrderNo);
|
||||
params.put("out_trade_no", String.format("%s-%s:%s", outOrderNo, userId, isUser ? "us" : "dl"));
|
||||
params.put("total", amount);
|
||||
|
||||
String sign = Encrypt.getParamsSign(params);
|
||||
|
||||
@@ -72,8 +72,8 @@ public class SdkInfoServiceImpl extends ServiceImpl<SdkInfoDao, SdkInfo> impleme
|
||||
limit = -1;
|
||||
}
|
||||
PageHelper.startPage(page, limit);
|
||||
List<SdkInfo> sdkList = baseMapper.getSdkList(sdkInfo);
|
||||
return PageUtils.page(new PageInfo<>(sdkList), true);
|
||||
// List<SdkInfo> sdkList = baseMapper.getSdkList(sdkInfo);
|
||||
return PageUtils.page(new PageInfo<>(new ArrayList<>()), true);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
14
src/main/java/com/sqx/modules/sys/dao/SysUserMoneyDao.java
Normal file
14
src/main/java/com/sqx/modules/sys/dao/SysUserMoneyDao.java
Normal file
@@ -0,0 +1,14 @@
|
||||
package com.sqx.modules.sys.dao;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.sqx.modules.sys.entity.SysUserMoney;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
@Mapper
|
||||
public interface SysUserMoneyDao extends BaseMapper<SysUserMoney> {
|
||||
|
||||
void updateSysMoney(@Param("type") Integer type, @Param("userId")Long userId, @Param("money") Double money);
|
||||
|
||||
}
|
||||
|
||||
41
src/main/java/com/sqx/modules/sys/entity/SysUserMoney.java
Normal file
41
src/main/java/com/sqx/modules/sys/entity/SysUserMoney.java
Normal file
@@ -0,0 +1,41 @@
|
||||
package com.sqx.modules.sys.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 系统用户钱包(SysUserMoney)表实体类
|
||||
*
|
||||
* @author ww
|
||||
* @since 2025-01-06 13:37:36
|
||||
*/
|
||||
@Data
|
||||
@TableName("sys_user_money")
|
||||
@ApiModel(value = "系统用户钱包 实体类")
|
||||
public class SysUserMoney extends Model<SysUserMoney> {
|
||||
@ApiModelProperty("钱包id")
|
||||
@TableId(type = IdType.ID_WORKER)
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long id;
|
||||
@ApiModelProperty("钱包金额 钱")
|
||||
private BigDecimal money;
|
||||
@ApiModelProperty("渠道 系统用户userId")
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long userId;
|
||||
private BigDecimal inviteIncomeMoney;
|
||||
private BigDecimal inviteIncomeCoin;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -8,6 +8,8 @@ import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
@@ -39,22 +41,26 @@ public class SysUserMoneyDetails implements Serializable {
|
||||
/**
|
||||
* 钱包详情id
|
||||
*/
|
||||
@TableId(type = IdType.AUTO)
|
||||
@TableId(type = IdType.ID_WORKER)
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 用户id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 渠道用户id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long sysUserId;
|
||||
|
||||
/**
|
||||
* 对应用户id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long byUserId;
|
||||
|
||||
/**
|
||||
@@ -110,6 +116,7 @@ public class SysUserMoneyDetails implements Serializable {
|
||||
/**
|
||||
* 源id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long sourceId;
|
||||
|
||||
@TableField(exist = false)
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.sqx.modules.sys.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.sqx.modules.app.entity.UserMoney;
|
||||
import com.sqx.modules.sys.entity.SysUserMoney;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public interface SysUserMoneyService extends IService<SysUserMoney> {
|
||||
|
||||
SysUserMoney selectSysUserMoneyByUserId(Long userId);
|
||||
|
||||
void updateSysMoney(int i, Long userId, double money);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.sqx.modules.sys.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.sqx.modules.app.entity.UserMoney;
|
||||
import com.sqx.modules.sys.dao.SysUserMoneyDao;
|
||||
import com.sqx.modules.sys.entity.SysUserMoney;
|
||||
import com.sqx.modules.sys.service.SysUserMoneyService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Map;
|
||||
|
||||
@Service
|
||||
public class SysUserMoneyServiceImpl extends ServiceImpl<SysUserMoneyDao, SysUserMoney> implements SysUserMoneyService {
|
||||
|
||||
@Override
|
||||
public void updateSysMoney(int i, Long userId, double money){
|
||||
selectSysUserMoneyByUserId(userId);
|
||||
baseMapper.updateSysMoney(i,userId,money);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SysUserMoney selectSysUserMoneyByUserId(Long userId){
|
||||
SysUserMoney userMoney = baseMapper.selectOne(new QueryWrapper<SysUserMoney>().eq("user_id", userId));
|
||||
if(userMoney==null){
|
||||
userMoney=new SysUserMoney();
|
||||
userMoney.setUserId(userId);
|
||||
userMoney.setMoney(new BigDecimal("0.00"));
|
||||
baseMapper.insert(userMoney);
|
||||
}
|
||||
return userMoney;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user