123
This commit is contained in:
@@ -140,6 +140,7 @@ public class RankAppController {
|
||||
love.setNickname(user.getNickname());
|
||||
love.setValue(rankNode.getScore());
|
||||
love.setDraw(rankNode.getDraw() == null || rankNode.getDraw());
|
||||
love.setRankAwardValue(rankNode.getRankAwardValue());
|
||||
love.setRankId(rankNode.getRankId());
|
||||
love.setHide(false);
|
||||
if(i == 0){
|
||||
@@ -180,6 +181,7 @@ public class RankAppController {
|
||||
if(rankNodeList.isEmpty()){
|
||||
return R.ok(Collections.emptyList());
|
||||
}
|
||||
Long userId = LoginHelper.getUserId();
|
||||
List<RankNodeInvite> res = new ArrayList<>();
|
||||
Set<Long> userIds = rankNodeList.stream().map(RankNode::getUserId).collect(Collectors.toSet());
|
||||
List<User> userList = userService.listByIds(userIds);
|
||||
@@ -192,10 +194,16 @@ public class RankAppController {
|
||||
continue;
|
||||
}
|
||||
RankNodeInvite invite = new RankNodeInvite();
|
||||
invite.setAvatar(GenderEnum.WOMEN.getDefaultAvatar());
|
||||
invite.setNickname(minNickname(user.getNickname()));
|
||||
if(user.getId().equals(userId)){
|
||||
invite.setAvatar(user.getAvatar());
|
||||
invite.setNickname(user.getNickname());
|
||||
}else{
|
||||
invite.setAvatar(GenderEnum.WOMEN.getDefaultAvatar());
|
||||
invite.setNickname(minNickname(user.getNickname()));
|
||||
}
|
||||
invite.setValue(rankNode.getScore());
|
||||
invite.setDraw(rankNode.getDraw() == null || rankNode.getDraw());
|
||||
invite.setRankAwardValue(rankNode.getRankAwardValue());
|
||||
invite.setRankId(rankNode.getRankId());
|
||||
if(i == 0){
|
||||
invite.setDiffLastValue(0L);
|
||||
|
||||
@@ -60,4 +60,8 @@ public class Rank implements Serializable {
|
||||
* 是否领取奖励
|
||||
*/
|
||||
private Boolean draw;
|
||||
/**
|
||||
* 排行奖励
|
||||
*/
|
||||
private Long rankAwardValue;
|
||||
}
|
||||
|
||||
@@ -18,4 +18,6 @@ public class RankNodeInvite {
|
||||
private boolean draw = true;
|
||||
@Schema(description = "榜单ID,领取榜单使用")
|
||||
private Long rankId;
|
||||
@Schema(description = "排行榜奖励数值(该字段仅限昨日榜单,上周榜单有用)")
|
||||
private Long rankAwardValue;
|
||||
}
|
||||
|
||||
@@ -23,4 +23,6 @@ public class RankNodeLove {
|
||||
private boolean draw = true;
|
||||
@Schema(description = "榜单ID,领取榜单使用")
|
||||
private Long rankId;
|
||||
@Schema(description = "排行榜奖励数值(该字段仅限昨日榜单,上周榜单有用)")
|
||||
private Long rankAwardValue;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.ruoyi.cai.enums.rank;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
public enum RankDataTypeEnum {
|
||||
DAY(1,"日榜"),
|
||||
WEEK(2,"周榜"),
|
||||
MONTH(3,"月榜"),
|
||||
;
|
||||
private final Integer code;
|
||||
private final String text;
|
||||
|
||||
RankDataTypeEnum(Integer code, String text) {
|
||||
this.code = code;
|
||||
this.text = text;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.ruoyi.cai.enums.rank;
|
||||
|
||||
import com.sun.org.apache.bcel.internal.generic.IFNE;
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
public enum RankTypeEnum {
|
||||
LOVE(1,"魅力榜"),
|
||||
INVITE(2,"邀请榜"),
|
||||
;
|
||||
private final Integer code;
|
||||
private final String text;
|
||||
|
||||
RankTypeEnum(Integer code, String text) {
|
||||
this.code = code;
|
||||
this.text = text;
|
||||
}
|
||||
}
|
||||
@@ -9,6 +9,7 @@ public class RankNode {
|
||||
private Long userId;
|
||||
private Long rankId;
|
||||
private Boolean draw;
|
||||
private Long rankAwardValue;
|
||||
|
||||
public RankNode() {
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user