|
|
|
|
@@ -1,7 +1,6 @@
|
|
|
|
|
package com.ruoyi.cai.service.impl;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
|
@@ -10,6 +9,8 @@ import com.ruoyi.cai.domain.User;
|
|
|
|
|
import com.ruoyi.cai.dto.admin.vo.RankAdminVo;
|
|
|
|
|
import com.ruoyi.cai.enums.SystemConfigEnum;
|
|
|
|
|
import com.ruoyi.cai.enums.account.AccountChangeCodeEnum;
|
|
|
|
|
import com.ruoyi.cai.enums.rank.RankDataTypeEnum;
|
|
|
|
|
import com.ruoyi.cai.enums.rank.RankTypeEnum;
|
|
|
|
|
import com.ruoyi.cai.manager.IdManager;
|
|
|
|
|
import com.ruoyi.cai.manager.SystemConfigManager;
|
|
|
|
|
import com.ruoyi.cai.mapper.AccountMapper;
|
|
|
|
|
@@ -58,6 +59,25 @@ public class RankServiceImpl extends ServiceImpl<RankMapper,Rank> implements Ran
|
|
|
|
|
@Autowired
|
|
|
|
|
private AccountChangeLogService accountChangeLogService;
|
|
|
|
|
|
|
|
|
|
private List<Long> getRankValue(Integer rankType, Integer dataType){
|
|
|
|
|
List<String> priceList = new ArrayList<>();
|
|
|
|
|
if(RankTypeEnum.LOVE.getCode().equals(rankType)){
|
|
|
|
|
if(RankDataTypeEnum.DAY.getCode().equals(dataType)){
|
|
|
|
|
priceList = systemConfigManager.getSystemConfigOfList(SystemConfigEnum.RANK_LOVE_DAY_AWARD);
|
|
|
|
|
}else if(RankDataTypeEnum.WEEK.getCode().equals(dataType)){
|
|
|
|
|
priceList = systemConfigManager.getSystemConfigOfList(SystemConfigEnum.RANK_LOVE_WEEK_AWARD);
|
|
|
|
|
}
|
|
|
|
|
}else if(RankTypeEnum.INVITE.getCode().equals(rankType)){
|
|
|
|
|
if(RankDataTypeEnum.DAY.getCode().equals(dataType)){
|
|
|
|
|
priceList = systemConfigManager.getSystemConfigOfList(SystemConfigEnum.RANK_INVITE_DAY_AWARD);
|
|
|
|
|
}else if(RankDataTypeEnum.WEEK.getCode().equals(dataType)){
|
|
|
|
|
priceList = systemConfigManager.getSystemConfigOfList(SystemConfigEnum.RANK_INVITE_WEEK_AWARD);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return priceList.stream().map(Long::valueOf).collect(Collectors.toList());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void saveDayRank(LocalDate date, Integer type) {
|
|
|
|
|
List<RankNode> rank;
|
|
|
|
|
@@ -88,6 +108,7 @@ public class RankServiceImpl extends ServiceImpl<RankMapper,Rank> implements Ran
|
|
|
|
|
log.error("本期榜单已经持久化 date={},type={}",date,type);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
List<Long> rankValue = getRankValue(type, RankDataTypeEnum.DAY.getCode());
|
|
|
|
|
List<Rank> res = new ArrayList<>();
|
|
|
|
|
for (int i = 0; i < rank.size(); i++) {
|
|
|
|
|
RankNode rankNode = rank.get(i);
|
|
|
|
|
@@ -100,6 +121,11 @@ public class RankServiceImpl extends ServiceImpl<RankMapper,Rank> implements Ran
|
|
|
|
|
db.setOrderRank(i+1);
|
|
|
|
|
db.setNum(rankNode.getScore());
|
|
|
|
|
db.setUserId(rankNode.getUserId());
|
|
|
|
|
if(i < 10){
|
|
|
|
|
db.setRankAwardValue(rankValue.get(i));
|
|
|
|
|
}else{
|
|
|
|
|
db.setRankAwardValue(0L);
|
|
|
|
|
}
|
|
|
|
|
res.add(db);
|
|
|
|
|
}
|
|
|
|
|
this.saveBatch(res);
|
|
|
|
|
@@ -139,6 +165,7 @@ public class RankServiceImpl extends ServiceImpl<RankMapper,Rank> implements Ran
|
|
|
|
|
log.error("本期榜单已经持久化 date={},type={}",date,type);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
List<Long> rankValue = getRankValue(type, RankDataTypeEnum.DAY.getCode());
|
|
|
|
|
List<Rank> res = new ArrayList<>();
|
|
|
|
|
LocalDate endDate = date.plusDays(7);
|
|
|
|
|
String rankTime = date.format(DateTimeFormatter.ofPattern("yyyyMMdd")) +"-"+endDate.format(DateTimeFormatter.ofPattern("yyyyMMdd"));
|
|
|
|
|
@@ -153,6 +180,11 @@ public class RankServiceImpl extends ServiceImpl<RankMapper,Rank> implements Ran
|
|
|
|
|
db.setOrderRank(i+1);
|
|
|
|
|
db.setNum(rankNode.getScore());
|
|
|
|
|
db.setUserId(rankNode.getUserId());
|
|
|
|
|
if(i < 10){
|
|
|
|
|
db.setRankAwardValue(rankValue.get(i));
|
|
|
|
|
}else{
|
|
|
|
|
db.setRankAwardValue(0L);
|
|
|
|
|
}
|
|
|
|
|
res.add(db);
|
|
|
|
|
}
|
|
|
|
|
this.saveBatch(res);
|
|
|
|
|
@@ -204,6 +236,7 @@ public class RankServiceImpl extends ServiceImpl<RankMapper,Rank> implements Ran
|
|
|
|
|
db.setOrderRank(i+1);
|
|
|
|
|
db.setNum(rankNode.getScore());
|
|
|
|
|
db.setUserId(rankNode.getUserId());
|
|
|
|
|
db.setRankAwardValue(0L);
|
|
|
|
|
res.add(db);
|
|
|
|
|
}
|
|
|
|
|
this.saveBatch(res);
|
|
|
|
|
@@ -223,21 +256,7 @@ public class RankServiceImpl extends ServiceImpl<RankMapper,Rank> implements Ran
|
|
|
|
|
if(user == null){
|
|
|
|
|
throw new ServiceException("用户不存在");
|
|
|
|
|
}
|
|
|
|
|
List<String> priceList = null;
|
|
|
|
|
if(rank.getType().equals(1)){ // 魅力
|
|
|
|
|
if(rank.getDataType().equals(1)){
|
|
|
|
|
priceList = systemConfigManager.getSystemConfigOfList(SystemConfigEnum.RANK_LOVE_DAY_AWARD);
|
|
|
|
|
}else if(rank.getDataType().equals(2)){
|
|
|
|
|
priceList = systemConfigManager.getSystemConfigOfList(SystemConfigEnum.RANK_LOVE_WEEK_AWARD);
|
|
|
|
|
}
|
|
|
|
|
}else if(rank.getType().equals(2)){ // 邀请
|
|
|
|
|
if(rank.getDataType().equals(1)){
|
|
|
|
|
priceList = systemConfigManager.getSystemConfigOfList(SystemConfigEnum.RANK_INVITE_DAY_AWARD);
|
|
|
|
|
}else if(rank.getDataType().equals(2)){
|
|
|
|
|
priceList = systemConfigManager.getSystemConfigOfList(SystemConfigEnum.RANK_INVITE_WEEK_AWARD);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(priceList == null){
|
|
|
|
|
if(rank.getRankAwardValue() == null || rank.getRankAwardValue() <= 0){
|
|
|
|
|
throw new ServiceException("领取失败,请联系客服");
|
|
|
|
|
}
|
|
|
|
|
Long traceId = IdManager.nextId();
|
|
|
|
|
@@ -249,10 +268,8 @@ public class RankServiceImpl extends ServiceImpl<RankMapper,Rank> implements Ran
|
|
|
|
|
if(!update){
|
|
|
|
|
throw new ServiceException("您已经领取奖励哦");
|
|
|
|
|
}
|
|
|
|
|
String priceStr = priceList.get(rank.getOrderRank() - 1);
|
|
|
|
|
Long price = Long.valueOf(priceStr);
|
|
|
|
|
accountMapper.incsIncomeCoin(rank.getUserId(),price);
|
|
|
|
|
accountChangeLogService.saveLogNoAdmin(user.getId(),user.getUsercode(), AccountChangeCodeEnum.RANK_AWARD,price,traceId);
|
|
|
|
|
accountMapper.incsIncomeCoin(rank.getUserId(),rank.getRankAwardValue());
|
|
|
|
|
accountChangeLogService.saveLogNoAdmin(user.getId(),user.getUsercode(), AccountChangeCodeEnum.RANK_AWARD,rank.getRankAwardValue(),traceId);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@@ -271,6 +288,7 @@ public class RankServiceImpl extends ServiceImpl<RankMapper,Rank> implements Ran
|
|
|
|
|
rankNode.setUserId(i.getUserId());
|
|
|
|
|
rankNode.setRankId(i.getId());
|
|
|
|
|
rankNode.setDraw(i.getDraw());
|
|
|
|
|
rankNode.setRankAwardValue(i.getRankAwardValue());
|
|
|
|
|
return rankNode;
|
|
|
|
|
}).collect(Collectors.toList());
|
|
|
|
|
}
|
|
|
|
|
@@ -291,6 +309,7 @@ public class RankServiceImpl extends ServiceImpl<RankMapper,Rank> implements Ran
|
|
|
|
|
rankNode.setUserId(i.getUserId());
|
|
|
|
|
rankNode.setRankId(i.getId());
|
|
|
|
|
rankNode.setDraw(i.getDraw());
|
|
|
|
|
rankNode.setRankAwardValue(i.getRankAwardValue());
|
|
|
|
|
return rankNode;
|
|
|
|
|
}).collect(Collectors.toList());
|
|
|
|
|
}
|
|
|
|
|
@@ -311,6 +330,7 @@ public class RankServiceImpl extends ServiceImpl<RankMapper,Rank> implements Ran
|
|
|
|
|
rankNode.setUserId(i.getUserId());
|
|
|
|
|
rankNode.setRankId(i.getId());
|
|
|
|
|
rankNode.setDraw(i.getDraw());
|
|
|
|
|
rankNode.setRankAwardValue(i.getRankAwardValue());
|
|
|
|
|
return rankNode;
|
|
|
|
|
}).collect(Collectors.toList());
|
|
|
|
|
}
|
|
|
|
|
@@ -331,6 +351,7 @@ public class RankServiceImpl extends ServiceImpl<RankMapper,Rank> implements Ran
|
|
|
|
|
rankNode.setUserId(i.getUserId());
|
|
|
|
|
rankNode.setRankId(i.getId());
|
|
|
|
|
rankNode.setDraw(i.getDraw());
|
|
|
|
|
rankNode.setRankAwardValue(i.getRankAwardValue());
|
|
|
|
|
return rankNode;
|
|
|
|
|
}).collect(Collectors.toList());
|
|
|
|
|
}
|
|
|
|
|
|