最新修改
This commit is contained in:
parent
048ec0d0be
commit
33409b404f
@ -137,8 +137,8 @@ public class WeChatMessageServiceImpl implements IWeChatMessageService {
|
||||
String platformName = baseCategoryService.selectByCode(busiNotice.getPlatformCode()).get(0).getTitle();
|
||||
String res="通告快接\n" +
|
||||
"【"+platformName+"】【"+busiNotice.getTitle()+"】\n" +
|
||||
"招募人数:"+(busiNotice.getNeedNum()==null?"无上限":busiNotice.getNeedNum()+"名\n") +
|
||||
"通告明细:"+busiNotice.getDetail()+"\n" +
|
||||
"招募人数:"+(busiNotice.getNeedNum()==null?"无上限":busiNotice.getNeedNum()+"名") +"\n"+
|
||||
"通告明细:"+busiNotice.getDetail().replace("<br>","\n")+"\n" +
|
||||
"三方报名链接:"+busiNotice.getThirdUrl()+"\n" +
|
||||
"大量小红书、B站、抖音、快手、微博高质量通告!\n";
|
||||
contentMessage.append(res);
|
||||
|
||||
@ -120,7 +120,7 @@ public class BaseConfigController extends BaseController
|
||||
LambdaQueryWrapper<BaseConfig> queryWrapper = new LambdaQueryWrapper<BaseConfig>().eq(BaseConfig::getCode,code);
|
||||
List<BaseConfig> list = baseConfigService.list(queryWrapper);
|
||||
if(list.isEmpty()){
|
||||
error("未查询到相关配置!");
|
||||
return error("未查询到相关配置!");
|
||||
}
|
||||
return AjaxResult.ok(list.get(0).getJsonStr());
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package com.ruoyi.busi.service.impl;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
@ -117,8 +118,11 @@ public class BusiNoticeSignServiceImpl extends ServiceImpl<BusiNoticeSignMapper,
|
||||
try {
|
||||
MemberUserVO tgz = memberUserService.queryByUserId(busiNotice.getUserId(), "01");
|
||||
if (StringUtils.isNotEmpty(tgz.getIdentityType()) && tgz.getIdentityType().equals("05")) {
|
||||
//判断距离通告发布24小时内报名人数是否达到50人
|
||||
if (noticeMapper.selectCount(new LambdaQueryWrapper<BusiNotice>().eq(BusiNotice::getId, appNoticeSign.getNoticeId()).ge(BusiNotice::getCreateTime, DateUtils.getNowDate().getTime() - 86400000)) == 50) {
|
||||
// 修改为正确的逻辑:统计通告发布后24小时内报名人数
|
||||
if (this.count(new LambdaQueryWrapper<BusiNoticeSign>()
|
||||
.eq(BusiNoticeSign::getNoticeId, appNoticeSign.getNoticeId())
|
||||
.le(BusiNoticeSign::getCreateTime, new Date(busiNotice.getCreateTime().getTime() + 86400000))) == 50) {
|
||||
|
||||
String point = sysConfigService.selectConfigByKey("goodNotice");
|
||||
if (StringUtils.isNotEmpty(point) && Integer.parseInt(point) > 0) {
|
||||
MemberPoints memberPoints = new MemberPoints();
|
||||
|
||||
@ -3,6 +3,7 @@ package com.ruoyi.member.controller;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.ruoyi.common.annotation.Anonymous;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
@ -48,6 +49,21 @@ public class MemberPointsController extends BaseController {
|
||||
return success(list);
|
||||
}
|
||||
|
||||
@GetMapping("/jsFEN")
|
||||
@Anonymous
|
||||
public AjaxResult jsFEN(@RequestParam(name = "userId") Long userId) {
|
||||
memberPointsService.jsFEN(userId);
|
||||
return success();
|
||||
}
|
||||
|
||||
@GetMapping("/rightJsFEN")
|
||||
@Anonymous
|
||||
public AjaxResult rightJsFEN() {
|
||||
memberPointsService.rightJsFEN();
|
||||
return success();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询积分变动明细
|
||||
*
|
||||
|
||||
@ -6,6 +6,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.ruoyi.member.domain.MemberPoints;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 博主积分变动明细Mapper接口
|
||||
@ -28,4 +31,15 @@ public interface MemberPointsMapper extends BaseMapper<MemberPoints> {
|
||||
IPage<MemberPoints> queryListPage(@Param("userId") Long userId, Page<MemberPoints> page);
|
||||
|
||||
IPage<MemberPoints> adminList(@Param("memberPoints") MemberPoints memberPoints, Page<MemberPoints> page);
|
||||
|
||||
|
||||
@Select("SELECT SUM(points) FROM dl_member_points WHERE user_id = #{userId} AND status = '01' AND del_flag = 0 AND type = '1'")
|
||||
Double sumAddPointsByUser(@Param("userId") Long userId);
|
||||
|
||||
@Select("SELECT SUM(points) FROM dl_member_points WHERE user_id = #{userId} AND status = '01' AND del_flag = 0 AND type = '2'")
|
||||
Double sumReducePointsByUser(@Param("userId") Long userId);
|
||||
|
||||
@Select("SELECT user_id FROM dl_member_points group by user_id")
|
||||
List<Long> getPointsUserIds();
|
||||
|
||||
}
|
||||
|
||||
@ -25,6 +25,9 @@ public interface IMemberPointsService extends IService<MemberPoints> {
|
||||
* @date 15:24 2025/3/29
|
||||
**/
|
||||
IPage<MemberPoints> queryListPage(Long userId, Page<MemberPoints> page);
|
||||
public void jsFEN(Long userId);
|
||||
public void rightJsFEN();
|
||||
|
||||
IPage<MemberPoints> adminList(MemberPoints memberPoints, Page<MemberPoints> page);
|
||||
|
||||
|
||||
|
||||
@ -130,7 +130,6 @@ public class MemberCardServiceImpl extends ServiceImpl<MemberCardMapper, MemberC
|
||||
.eq(MemberCard::getCardId, cardId)
|
||||
.eq(MemberCard::getUserId, userId)
|
||||
.eq(DlBaseEntity::getDelFlag, 0)
|
||||
.lt(MemberCard::getStartDate, time)
|
||||
.ge(MemberCard::getEndDate, time)
|
||||
.orderByDesc(MemberCard::getEndDate);
|
||||
return list(lambdaQueryWrapper);
|
||||
|
||||
@ -16,10 +16,7 @@ import io.lettuce.core.LMoveArgs;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@ -50,6 +47,107 @@ public class MemberPointsServiceImpl extends ServiceImpl<MemberPointsMapper, Mem
|
||||
return memberPointsMapper.queryListPage(userId,page);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询积分变动明细
|
||||
*
|
||||
* @param userId 用户id
|
||||
* @param page 分页参数
|
||||
* @return com.baomidou.mybatisplus.core.metadata.IPage<com.ruoyi.member.domain.MemberPoints>
|
||||
* @author PQZ
|
||||
* @date 15:24 2025/3/29
|
||||
**/
|
||||
@Override
|
||||
public void jsFEN(Long userId) {
|
||||
LambdaQueryWrapper<MemberPoints> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(DlBaseEntity::getDelFlag,0);
|
||||
lambdaQueryWrapper.eq(MemberPoints::getUserId,userId);
|
||||
lambdaQueryWrapper.eq(MemberPoints::getStatus,"01");
|
||||
lambdaQueryWrapper.orderByAsc(DlBaseEntity::getCreateTime);
|
||||
List<MemberPoints> memberPoints = memberPointsMapper.selectList(lambdaQueryWrapper);
|
||||
Double score =0d;
|
||||
int i = 0;
|
||||
Double errorAdd = 0d;
|
||||
Double errorSub = 0d;
|
||||
for (MemberPoints memberPoint : memberPoints) {
|
||||
if (i>0){
|
||||
if ("1".equals(memberPoint.getType())) {
|
||||
if (memberPoint.getBalance()!=memberPoints.get(i-1).getBalance()+ memberPoint.getPoints()){
|
||||
errorAdd += memberPoint.getPoints();
|
||||
}
|
||||
|
||||
} else {
|
||||
if (memberPoint.getBalance()!=memberPoints.get(i-1).getBalance()-memberPoint.getPoints()){
|
||||
errorSub += memberPoint.getPoints();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ("1".equals(memberPoint.getType())) {
|
||||
|
||||
score += memberPoint.getPoints();
|
||||
|
||||
|
||||
} else {
|
||||
score -= memberPoint.getPoints();
|
||||
|
||||
}
|
||||
i++;
|
||||
}
|
||||
System.out.println("错误---"+errorSub);
|
||||
System.out.println("错误++++"+errorAdd);
|
||||
System.out.println("score"+score);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 修复后的积分余额计算方法
|
||||
*
|
||||
* @author PQZ
|
||||
* @date 15:24 2025/3/29
|
||||
**/
|
||||
@Override
|
||||
public void rightJsFEN() {
|
||||
// 开启线程(建议使用线程池替代直接new Thread)
|
||||
new Thread(() -> {
|
||||
List<Long> pointsUserIds = memberPointsMapper.getPointsUserIds();
|
||||
for (Long userId : pointsUserIds) {
|
||||
LambdaQueryWrapper<MemberPoints> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(DlBaseEntity::getDelFlag, 0)
|
||||
.eq(MemberPoints::getUserId, userId)
|
||||
.eq(MemberPoints::getStatus, "01")
|
||||
.orderByAsc(DlBaseEntity::getCreateTime);
|
||||
List<MemberPoints> memberPoints = memberPointsMapper.selectList(lambdaQueryWrapper);
|
||||
|
||||
// 修复:正确计算余额
|
||||
for (int i = 0; i < memberPoints.size(); i++) {
|
||||
MemberPoints memberPoint = memberPoints.get(i);
|
||||
if (i == 0) {
|
||||
// 第一条记录,余额等于积分
|
||||
memberPoint.setBalance(memberPoint.getPoints());
|
||||
} else {
|
||||
// 后续记录,基于前一条记录的余额计算
|
||||
MemberPoints previousPoint = memberPoints.get(i - 1);
|
||||
if ("1".equals(memberPoint.getType())) {
|
||||
// 增加积分
|
||||
memberPoint.setBalance(previousPoint.getBalance() + memberPoint.getPoints());
|
||||
} else {
|
||||
// 减少积分
|
||||
memberPoint.setBalance(previousPoint.getBalance() - memberPoint.getPoints());
|
||||
}
|
||||
}
|
||||
}
|
||||
// 批量更新
|
||||
if (!memberPoints.isEmpty()) {
|
||||
this.updateBatchById(memberPoints);
|
||||
}
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public IPage<MemberPoints> adminList(MemberPoints memberPoints, Page<MemberPoints> page) {
|
||||
return memberPointsMapper.adminList(memberPoints,page);
|
||||
@ -82,7 +180,7 @@ public class MemberPointsServiceImpl extends ServiceImpl<MemberPointsMapper, Mem
|
||||
memberPoints.setBalance(memberPoints.getPoints());
|
||||
} else {
|
||||
//如果有记录则取最新记录中的剩余值进行计算后得出新值
|
||||
double oldBalance = list.get(0).getBalance();
|
||||
double oldBalance = getBloggerBalance(memberPoints.getUserId());
|
||||
double newBalance;
|
||||
if ("1".equals(memberPoints.getType())) {
|
||||
newBalance = oldBalance + memberPoints.getPoints();
|
||||
@ -105,20 +203,21 @@ public class MemberPointsServiceImpl extends ServiceImpl<MemberPointsMapper, Mem
|
||||
**/
|
||||
@Override
|
||||
public double getBloggerBalance(Long userId) {
|
||||
LambdaQueryWrapper<MemberPoints> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper
|
||||
.eq(MemberPoints::getUserId,userId)
|
||||
.eq(MemberPoints::getStatus,"01")
|
||||
.orderByDesc(DlBaseEntity::getCreateTime);
|
||||
List<MemberPoints> list = list(lambdaQueryWrapper);
|
||||
if (list.isEmpty()){
|
||||
return 0;
|
||||
} else {
|
||||
return list.get(0).getBalance();
|
||||
Double addSum = memberPointsMapper.sumAddPointsByUser(userId);
|
||||
Double reduceSum = memberPointsMapper.sumReducePointsByUser(userId);
|
||||
if (addSum == null) {
|
||||
addSum = 0.0;
|
||||
}
|
||||
if (reduceSum == null) {
|
||||
reduceSum = 0.0;
|
||||
}
|
||||
// 返回差值作为最终余额
|
||||
return addSum - reduceSum;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 获取积分
|
||||
*
|
||||
@ -133,6 +232,7 @@ public class MemberPointsServiceImpl extends ServiceImpl<MemberPointsMapper, Mem
|
||||
lambdaQueryWrapper
|
||||
.eq(MemberPoints::getUserId,userId)
|
||||
.eq(MemberPoints::getStatus,"01")
|
||||
.eq(DlBaseEntity::getDelFlag,0)
|
||||
.and(wrapper -> wrapper.eq(MemberPoints::getType,"1").lt(MemberPoints::getCreateTime, new Date(System.currentTimeMillis() - 86400000L)).or().eq(MemberPoints::getType,"2"))
|
||||
.orderByDesc(DlBaseEntity::getCreateTime);
|
||||
List<MemberPoints> list = list(lambdaQueryWrapper);
|
||||
@ -144,7 +244,8 @@ public class MemberPointsServiceImpl extends ServiceImpl<MemberPointsMapper, Mem
|
||||
//在获取在最新一条记录createtime后 type等于2的全部数据
|
||||
List<MemberPoints> memberPointsList = list.stream().filter(wrapper -> "2".equals(wrapper.getType())).filter(wrapper -> wrapper.getCreateTime().after(memberPoints.getCreateTime())).collect(Collectors.toList());
|
||||
//计算出可提现的积分
|
||||
return memberPoints.getBalance() - memberPointsList.stream().mapToDouble(MemberPoints::getPoints).sum();
|
||||
double canWithdraw = memberPoints.getBalance() - memberPointsList.stream().mapToDouble(MemberPoints::getPoints).sum();
|
||||
return Math.min(canWithdraw, getBloggerBalance(userId));
|
||||
}
|
||||
}
|
||||
|
||||
@ -244,4 +345,7 @@ public class MemberPointsServiceImpl extends ServiceImpl<MemberPointsMapper, Mem
|
||||
// 组合成订单编号
|
||||
return "JFTX" + timestamp + String.format("%03d", randomNum);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -6,10 +6,10 @@ spring:
|
||||
druid:
|
||||
# 主库数据源
|
||||
master:
|
||||
# url: jdbc:mysql://124.222.105.7:3306/dl_notice?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
|
||||
url: jdbc:mysql://82.156.161.160:3306/dl_notice?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
|
||||
username: dl_notice
|
||||
password: 123456
|
||||
url: jdbc:mysql://1.92.99.15:3306/dl_notice?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
|
||||
#url: jdbc:mysql://127.0.0.1:3306/dl_notice?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
|
||||
username: root
|
||||
password: qqzcy@1014
|
||||
# 从库数据源
|
||||
slave:
|
||||
# 从数据源开关/默认关闭
|
||||
|
||||
Loading…
Reference in New Issue
Block a user