Merge remote-tracking branch 'origin/test' into test
This commit is contained in:
commit
f45f5e5615
|
|
@ -7,6 +7,7 @@ import org.apache.ibatis.annotations.Param;
|
|||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* 用户
|
||||
|
|
@ -35,7 +36,7 @@ public interface UserDao extends BaseMapper<UserEntity> {
|
|||
|
||||
int insertUser(UserEntity userEntity);
|
||||
|
||||
List<UserEntity> selectInviteUserList();
|
||||
List<UserEntity> selectInviteUserList(@Param("queryUserIdList") Set<Long> queryUserIdList);
|
||||
|
||||
int selectUserOnLineCount(String qdCode);
|
||||
|
||||
|
|
|
|||
|
|
@ -20,7 +20,6 @@ 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.toolkit.IdWorker;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.getui.push.v2.sdk.ApiHelper;
|
||||
import com.getui.push.v2.sdk.GtApiConfiguration;
|
||||
|
|
@ -34,6 +33,7 @@ import com.getui.push.v2.sdk.dto.req.message.android.GTNotification;
|
|||
import com.getui.push.v2.sdk.dto.req.message.ios.Alert;
|
||||
import com.getui.push.v2.sdk.dto.req.message.ios.Aps;
|
||||
import com.getui.push.v2.sdk.dto.req.message.ios.IosDTO;
|
||||
import com.github.pagehelper.Page;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.github.qcloudsms.SmsSingleSenderResult;
|
||||
|
|
@ -1531,23 +1531,42 @@ public class UserServiceImpl extends ServiceImpl<UserDao, UserEntity> implements
|
|||
if (StrUtil.isNotBlank(phone)) {
|
||||
queryWrapper.like(UserEntity::getPhone, phone);
|
||||
}
|
||||
queryWrapper.orderByDesc(UserEntity::getCreateTime);
|
||||
PageHelper.startPage(page,limit);
|
||||
List<UserEntity> userEntityList = list(queryWrapper);
|
||||
|
||||
Map<Long, Integer> countInfoMap = baseMapper.selectInviteUserList().stream().collect(Collectors.toMap(UserEntity::getUserId, UserEntity::getCounts));
|
||||
if (!userEntityList.isEmpty()) {
|
||||
Set<Long> userIdList = userEntityList.stream().map(UserEntity::getUserId).collect(Collectors.toSet());
|
||||
Set<Long> queryUserIdList = null;
|
||||
if (!queryWrapper.isEmptyOfWhere()) {
|
||||
queryUserIdList = list(queryWrapper.select(UserEntity::getUserId)).stream().map(UserEntity::getUserId).collect(Collectors.toSet());
|
||||
}
|
||||
|
||||
PageHelper.startPage(page, limit);
|
||||
List<UserEntity> inviteList = baseMapper.selectInviteUserList(queryUserIdList);
|
||||
|
||||
List<UserEntity> userInfoList = new ArrayList<>();
|
||||
if (!inviteList.isEmpty()) {
|
||||
Map<String, Integer> countInfoMap = new HashMap<>();
|
||||
ArrayList<String> inviteCodeList = new ArrayList<>();
|
||||
inviteList.forEach(item -> {
|
||||
countInfoMap.put(item.getInviterCode(), item.getCounts());
|
||||
inviteCodeList.add(item.getInviterCode());
|
||||
});
|
||||
|
||||
userInfoList = list(new LambdaQueryWrapper<UserEntity>().in(UserEntity::getInvitationCode, inviteCodeList));
|
||||
|
||||
Set<Long> useridList = userInfoList.stream().map(UserEntity::getUserId).collect(Collectors.toSet());
|
||||
Map<Long, UserMoney> infoMap = userMoneyService.list(new LambdaQueryWrapper<UserMoney>()
|
||||
.in(UserMoney::getUserId, userIdList))
|
||||
.in(UserMoney::getUserId, useridList))
|
||||
.stream().collect(Collectors.toMap(UserMoney::getUserId, item -> item));
|
||||
userEntityList.forEach(item -> {
|
||||
userInfoList.forEach(item -> {
|
||||
UserMoney userMoney = infoMap.get(item.getUserId());
|
||||
item.setMoney(userMoney == null ? BigDecimal.ZERO : userMoney.getInviteIncomeMoney());
|
||||
item.setCounts(countInfoMap.get(item.getUserId()));
|
||||
Integer i = countInfoMap.get(item.getInvitationCode());
|
||||
item.setCounts(i == null ? 0 : i);
|
||||
});
|
||||
}
|
||||
return Result.success().put("data", PageUtils.page(new PageInfo<>(userEntityList),true));
|
||||
|
||||
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));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -20,4 +20,5 @@ public interface CourseCollectDao extends BaseMapper<CourseCollect> {
|
|||
|
||||
|
||||
List<Course> selectClassify1In3(@Param("userId") Long userId);
|
||||
List<Course> selectClassify1ByUserId(@Param("userId") Long userId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -132,10 +132,16 @@ public class CourseCollectServiceImpl extends ServiceImpl<CourseCollectDao, Cour
|
|||
@CachePut(value = "app:courseCollect", key = "#userId")
|
||||
public Result selectByUserId(Integer page, Integer limit, Long userId, Integer classify) {
|
||||
PageHelper.startPage(page, limit);
|
||||
//查 收藏记录
|
||||
List<Course> courses = baseMapper.selectClassify1In3(userId);
|
||||
List<Course> courses = new ArrayList<>();
|
||||
//收藏
|
||||
if (classify.equals(1)) {
|
||||
//查 收藏记录
|
||||
courses = baseMapper.selectClassify1In3(userId);
|
||||
} else {
|
||||
courses = baseMapper.selectClassify1ByUserId(userId);
|
||||
}
|
||||
if (CollectionUtil.isEmpty(courses)) {
|
||||
return Result.success();
|
||||
return Result.success().put("data", PageUtils.page(new PageInfo<>(courses), true));
|
||||
}
|
||||
//剧id
|
||||
Set<Long> courseIdList = new HashSet<>();
|
||||
|
|
@ -151,7 +157,8 @@ public class CourseCollectServiceImpl extends ServiceImpl<CourseCollectDao, Cour
|
|||
List<CourseDetails> courseDetails1 = courseIdList.isEmpty() ? new ArrayList<>() :
|
||||
courseDetailsService.list(new LambdaQueryWrapper<CourseDetails>().in(CourseDetails::getCourseDetailsId, courseDetailIds));
|
||||
Map<Long, CourseDetails> courseDetailsMap = courseDetails1.stream().collect(Collectors.toMap(CourseDetails::getCourseId, item -> item));
|
||||
Map<Long, Integer> countMap = courseDetailsDao.countByCourseId(courseIdList).stream()
|
||||
List<CourseDetails> courseDetails2 = courseDetailsDao.countByCourseId(courseIdList);
|
||||
Map<Long, Integer> countMap = courseDetails2.stream()
|
||||
.collect(Collectors.toMap(CourseDetails::getCourseId, CourseDetails::getCourseDetailsCount));
|
||||
|
||||
if (CollectionUtil.isNotEmpty(courseList)) {
|
||||
|
|
|
|||
|
|
@ -2,12 +2,14 @@ package com.sqx.modules.job.task;
|
|||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.sqx.modules.pay.dao.CashOutDao;
|
||||
import com.sqx.modules.pay.entity.CashOut;
|
||||
import com.sqx.modules.pay.wuyou.BaseResp;
|
||||
import com.sqx.modules.pay.wuyou.WuyouPay;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
|
@ -23,19 +25,32 @@ public class TempCashOutTask{
|
|||
|
||||
private Logger logger = LoggerFactory.getLogger(getClass());
|
||||
|
||||
public void run(String params) {
|
||||
@Scheduled(cron = "0 0/8 * * * ? ")
|
||||
public void run() {
|
||||
logger.info("提现开始");
|
||||
List<CashOut> cashOuts = cashOutDao.selectTemp();
|
||||
List<CashOut> cashOuts = cashOutDao.selectTemp(DateUtil.offsetMinute(DateUtil.date(), 5));
|
||||
for (CashOut cashOut : cashOuts) {
|
||||
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());
|
||||
cashOut.setState(1);
|
||||
cashOut.setOutAt(DateUtil.now());
|
||||
cashOut.setRefund(null);
|
||||
cashOut.setOutAt(DateUtil.now());
|
||||
cashOutDao.updateById(cashOut);
|
||||
try {
|
||||
BaseResp baseResp;
|
||||
if (DateUtil.parse(cashOut.getCreateAt()).compareTo(DateUtil.parse("2025-01-06 16:50:00")) < 0) {
|
||||
baseResp = wuyouPay.queryExtractOrder(cashOut.getOrderNumber(), cashOut.getUserId(), cashOut.getUserType() != 2, cashOut.getMoney());
|
||||
}else {
|
||||
baseResp = wuyouPay.queryExtractOrder(cashOut.getOrderNumber(), 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());
|
||||
cashOut.setState(1);
|
||||
cashOut.setOutAt(DateUtil.now());
|
||||
cashOut.setRefund(null);
|
||||
cashOut.setOutAt(DateUtil.now());
|
||||
cashOutDao.update(cashOut, new LambdaQueryWrapper<CashOut>().eq(CashOut::getUserId, cashOut.getUserId()).eq(CashOut::getId, cashOut.getId()));
|
||||
}else if (baseResp.getStatus() != null && baseResp.getStatus().equals(3)) {
|
||||
cashOut.setState(2);
|
||||
cashOutDao.update(cashOut, new LambdaQueryWrapper<CashOut>().eq(CashOut::getUserId, cashOut.getUserId()).eq(CashOut::getId, cashOut.getId()));
|
||||
}
|
||||
}catch (Exception e) {
|
||||
logger.error("体现定时任务查询出错", e);
|
||||
}
|
||||
}
|
||||
logger.info("提现结束");
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.sqx.modules.pay.dao;
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.sqx.modules.pay.entity.CashOut;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
|
@ -22,7 +23,7 @@ public interface CashOutDao extends BaseMapper<CashOut> {
|
|||
|
||||
List<CashOut> selectYesterday();
|
||||
|
||||
List<CashOut> selectTemp();
|
||||
List<CashOut> selectTemp(@Param("time")DateTime time);
|
||||
|
||||
Double selectCashOutSum(@Param("userId") Long userId, @Param("startTime") Date startTime, @Param("endTime") Date endTime);
|
||||
|
||||
|
|
|
|||
|
|
@ -299,7 +299,16 @@
|
|||
|
||||
|
||||
<select id="selectInviteUserList" resultType="com.sqx.modules.app.entity.UserEntity">
|
||||
SELECT any_value(user_id) as userId, COUNT(*) AS counts FROM tb_user GROUP BY inviter_code order by counts desc
|
||||
SELECT any_value(inviter_code) as inviterCode, COUNT(*) AS counts
|
||||
FROM tb_user
|
||||
<if test="queryUserIdList != null">
|
||||
where user_id in
|
||||
<foreach collection="queryUserIdList" item="id" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</if>
|
||||
|
||||
GROUP BY inviter_code order by counts desc
|
||||
</select>
|
||||
|
||||
<select id="selectUserOnLineCount" resultType="Integer">
|
||||
|
|
|
|||
|
|
@ -40,5 +40,15 @@
|
|||
WHERE
|
||||
c1.classify = 3
|
||||
AND c1.user_id = #{userId}
|
||||
order by c1.create_time desc
|
||||
</select>
|
||||
|
||||
<select id="selectClassify1ByUserId" resultType="com.sqx.modules.course.entity.Course">
|
||||
SELECT c1.course_id as courseId,
|
||||
c1.course_details_id as courseDetailsId
|
||||
FROM `course_collect` c1
|
||||
WHERE c1.classify = 3
|
||||
AND c1.user_id = #{userId}
|
||||
order by c1.create_time desc
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@
|
|||
SELECT course_id as courseId,
|
||||
COUNT(*) AS courseDetailsCount
|
||||
FROM course_details
|
||||
where course_details_id in
|
||||
where course_id in
|
||||
<foreach collection="courseIdList" item="ids" open="(" separator="," close=")">
|
||||
#{ids}
|
||||
</foreach>
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
<select id="selectTemp" resultType="com.sqx.modules.pay.entity.CashOut">
|
||||
SELECT * FROM cash_out
|
||||
WHERE
|
||||
state = 0 and order_number is not null and order_number != ''
|
||||
(state = 0 or state=4) and order_number is not null and order_number != '' and create_at < #{time}
|
||||
</select>
|
||||
|
||||
<select id="selectCashOutSum" resultType="Double">
|
||||
|
|
|
|||
Loading…
Reference in New Issue