123
This commit is contained in:
@@ -140,6 +140,7 @@ public class RankAppController {
|
|||||||
love.setNickname(user.getNickname());
|
love.setNickname(user.getNickname());
|
||||||
love.setValue(rankNode.getScore());
|
love.setValue(rankNode.getScore());
|
||||||
love.setDraw(rankNode.getDraw() == null || rankNode.getDraw());
|
love.setDraw(rankNode.getDraw() == null || rankNode.getDraw());
|
||||||
|
love.setRankAwardValue(rankNode.getRankAwardValue());
|
||||||
love.setRankId(rankNode.getRankId());
|
love.setRankId(rankNode.getRankId());
|
||||||
love.setHide(false);
|
love.setHide(false);
|
||||||
if(i == 0){
|
if(i == 0){
|
||||||
@@ -180,6 +181,7 @@ public class RankAppController {
|
|||||||
if(rankNodeList.isEmpty()){
|
if(rankNodeList.isEmpty()){
|
||||||
return R.ok(Collections.emptyList());
|
return R.ok(Collections.emptyList());
|
||||||
}
|
}
|
||||||
|
Long userId = LoginHelper.getUserId();
|
||||||
List<RankNodeInvite> res = new ArrayList<>();
|
List<RankNodeInvite> res = new ArrayList<>();
|
||||||
Set<Long> userIds = rankNodeList.stream().map(RankNode::getUserId).collect(Collectors.toSet());
|
Set<Long> userIds = rankNodeList.stream().map(RankNode::getUserId).collect(Collectors.toSet());
|
||||||
List<User> userList = userService.listByIds(userIds);
|
List<User> userList = userService.listByIds(userIds);
|
||||||
@@ -192,10 +194,16 @@ public class RankAppController {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
RankNodeInvite invite = new RankNodeInvite();
|
RankNodeInvite invite = new RankNodeInvite();
|
||||||
|
if(user.getId().equals(userId)){
|
||||||
|
invite.setAvatar(user.getAvatar());
|
||||||
|
invite.setNickname(user.getNickname());
|
||||||
|
}else{
|
||||||
invite.setAvatar(GenderEnum.WOMEN.getDefaultAvatar());
|
invite.setAvatar(GenderEnum.WOMEN.getDefaultAvatar());
|
||||||
invite.setNickname(minNickname(user.getNickname()));
|
invite.setNickname(minNickname(user.getNickname()));
|
||||||
|
}
|
||||||
invite.setValue(rankNode.getScore());
|
invite.setValue(rankNode.getScore());
|
||||||
invite.setDraw(rankNode.getDraw() == null || rankNode.getDraw());
|
invite.setDraw(rankNode.getDraw() == null || rankNode.getDraw());
|
||||||
|
invite.setRankAwardValue(rankNode.getRankAwardValue());
|
||||||
invite.setRankId(rankNode.getRankId());
|
invite.setRankId(rankNode.getRankId());
|
||||||
if(i == 0){
|
if(i == 0){
|
||||||
invite.setDiffLastValue(0L);
|
invite.setDiffLastValue(0L);
|
||||||
|
|||||||
@@ -60,4 +60,8 @@ public class Rank implements Serializable {
|
|||||||
* 是否领取奖励
|
* 是否领取奖励
|
||||||
*/
|
*/
|
||||||
private Boolean draw;
|
private Boolean draw;
|
||||||
|
/**
|
||||||
|
* 排行奖励
|
||||||
|
*/
|
||||||
|
private Long rankAwardValue;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,4 +18,6 @@ public class RankNodeInvite {
|
|||||||
private boolean draw = true;
|
private boolean draw = true;
|
||||||
@Schema(description = "榜单ID,领取榜单使用")
|
@Schema(description = "榜单ID,领取榜单使用")
|
||||||
private Long rankId;
|
private Long rankId;
|
||||||
|
@Schema(description = "排行榜奖励数值(该字段仅限昨日榜单,上周榜单有用)")
|
||||||
|
private Long rankAwardValue;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,4 +23,6 @@ public class RankNodeLove {
|
|||||||
private boolean draw = true;
|
private boolean draw = true;
|
||||||
@Schema(description = "榜单ID,领取榜单使用")
|
@Schema(description = "榜单ID,领取榜单使用")
|
||||||
private Long rankId;
|
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 userId;
|
||||||
private Long rankId;
|
private Long rankId;
|
||||||
private Boolean draw;
|
private Boolean draw;
|
||||||
|
private Long rankAwardValue;
|
||||||
|
|
||||||
public RankNode() {
|
public RankNode() {
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.ruoyi.cai.service.impl;
|
package com.ruoyi.cai.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.date.DateUtil;
|
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
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.dto.admin.vo.RankAdminVo;
|
||||||
import com.ruoyi.cai.enums.SystemConfigEnum;
|
import com.ruoyi.cai.enums.SystemConfigEnum;
|
||||||
import com.ruoyi.cai.enums.account.AccountChangeCodeEnum;
|
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.IdManager;
|
||||||
import com.ruoyi.cai.manager.SystemConfigManager;
|
import com.ruoyi.cai.manager.SystemConfigManager;
|
||||||
import com.ruoyi.cai.mapper.AccountMapper;
|
import com.ruoyi.cai.mapper.AccountMapper;
|
||||||
@@ -58,6 +59,25 @@ public class RankServiceImpl extends ServiceImpl<RankMapper,Rank> implements Ran
|
|||||||
@Autowired
|
@Autowired
|
||||||
private AccountChangeLogService accountChangeLogService;
|
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
|
@Override
|
||||||
public void saveDayRank(LocalDate date, Integer type) {
|
public void saveDayRank(LocalDate date, Integer type) {
|
||||||
List<RankNode> rank;
|
List<RankNode> rank;
|
||||||
@@ -88,6 +108,7 @@ public class RankServiceImpl extends ServiceImpl<RankMapper,Rank> implements Ran
|
|||||||
log.error("本期榜单已经持久化 date={},type={}",date,type);
|
log.error("本期榜单已经持久化 date={},type={}",date,type);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
List<Long> rankValue = getRankValue(type, RankDataTypeEnum.DAY.getCode());
|
||||||
List<Rank> res = new ArrayList<>();
|
List<Rank> res = new ArrayList<>();
|
||||||
for (int i = 0; i < rank.size(); i++) {
|
for (int i = 0; i < rank.size(); i++) {
|
||||||
RankNode rankNode = rank.get(i);
|
RankNode rankNode = rank.get(i);
|
||||||
@@ -100,6 +121,11 @@ public class RankServiceImpl extends ServiceImpl<RankMapper,Rank> implements Ran
|
|||||||
db.setOrderRank(i+1);
|
db.setOrderRank(i+1);
|
||||||
db.setNum(rankNode.getScore());
|
db.setNum(rankNode.getScore());
|
||||||
db.setUserId(rankNode.getUserId());
|
db.setUserId(rankNode.getUserId());
|
||||||
|
if(i < 10){
|
||||||
|
db.setRankAwardValue(rankValue.get(i));
|
||||||
|
}else{
|
||||||
|
db.setRankAwardValue(0L);
|
||||||
|
}
|
||||||
res.add(db);
|
res.add(db);
|
||||||
}
|
}
|
||||||
this.saveBatch(res);
|
this.saveBatch(res);
|
||||||
@@ -139,6 +165,7 @@ public class RankServiceImpl extends ServiceImpl<RankMapper,Rank> implements Ran
|
|||||||
log.error("本期榜单已经持久化 date={},type={}",date,type);
|
log.error("本期榜单已经持久化 date={},type={}",date,type);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
List<Long> rankValue = getRankValue(type, RankDataTypeEnum.DAY.getCode());
|
||||||
List<Rank> res = new ArrayList<>();
|
List<Rank> res = new ArrayList<>();
|
||||||
LocalDate endDate = date.plusDays(7);
|
LocalDate endDate = date.plusDays(7);
|
||||||
String rankTime = date.format(DateTimeFormatter.ofPattern("yyyyMMdd")) +"-"+endDate.format(DateTimeFormatter.ofPattern("yyyyMMdd"));
|
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.setOrderRank(i+1);
|
||||||
db.setNum(rankNode.getScore());
|
db.setNum(rankNode.getScore());
|
||||||
db.setUserId(rankNode.getUserId());
|
db.setUserId(rankNode.getUserId());
|
||||||
|
if(i < 10){
|
||||||
|
db.setRankAwardValue(rankValue.get(i));
|
||||||
|
}else{
|
||||||
|
db.setRankAwardValue(0L);
|
||||||
|
}
|
||||||
res.add(db);
|
res.add(db);
|
||||||
}
|
}
|
||||||
this.saveBatch(res);
|
this.saveBatch(res);
|
||||||
@@ -204,6 +236,7 @@ public class RankServiceImpl extends ServiceImpl<RankMapper,Rank> implements Ran
|
|||||||
db.setOrderRank(i+1);
|
db.setOrderRank(i+1);
|
||||||
db.setNum(rankNode.getScore());
|
db.setNum(rankNode.getScore());
|
||||||
db.setUserId(rankNode.getUserId());
|
db.setUserId(rankNode.getUserId());
|
||||||
|
db.setRankAwardValue(0L);
|
||||||
res.add(db);
|
res.add(db);
|
||||||
}
|
}
|
||||||
this.saveBatch(res);
|
this.saveBatch(res);
|
||||||
@@ -223,21 +256,7 @@ public class RankServiceImpl extends ServiceImpl<RankMapper,Rank> implements Ran
|
|||||||
if(user == null){
|
if(user == null){
|
||||||
throw new ServiceException("用户不存在");
|
throw new ServiceException("用户不存在");
|
||||||
}
|
}
|
||||||
List<String> priceList = null;
|
if(rank.getRankAwardValue() == null || rank.getRankAwardValue() <= 0){
|
||||||
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){
|
|
||||||
throw new ServiceException("领取失败,请联系客服");
|
throw new ServiceException("领取失败,请联系客服");
|
||||||
}
|
}
|
||||||
Long traceId = IdManager.nextId();
|
Long traceId = IdManager.nextId();
|
||||||
@@ -249,10 +268,8 @@ public class RankServiceImpl extends ServiceImpl<RankMapper,Rank> implements Ran
|
|||||||
if(!update){
|
if(!update){
|
||||||
throw new ServiceException("您已经领取奖励哦");
|
throw new ServiceException("您已经领取奖励哦");
|
||||||
}
|
}
|
||||||
String priceStr = priceList.get(rank.getOrderRank() - 1);
|
accountMapper.incsIncomeCoin(rank.getUserId(),rank.getRankAwardValue());
|
||||||
Long price = Long.valueOf(priceStr);
|
accountChangeLogService.saveLogNoAdmin(user.getId(),user.getUsercode(), AccountChangeCodeEnum.RANK_AWARD,rank.getRankAwardValue(),traceId);
|
||||||
accountMapper.incsIncomeCoin(rank.getUserId(),price);
|
|
||||||
accountChangeLogService.saveLogNoAdmin(user.getId(),user.getUsercode(), AccountChangeCodeEnum.RANK_AWARD,price,traceId);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -271,6 +288,7 @@ public class RankServiceImpl extends ServiceImpl<RankMapper,Rank> implements Ran
|
|||||||
rankNode.setUserId(i.getUserId());
|
rankNode.setUserId(i.getUserId());
|
||||||
rankNode.setRankId(i.getId());
|
rankNode.setRankId(i.getId());
|
||||||
rankNode.setDraw(i.getDraw());
|
rankNode.setDraw(i.getDraw());
|
||||||
|
rankNode.setRankAwardValue(i.getRankAwardValue());
|
||||||
return rankNode;
|
return rankNode;
|
||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
@@ -291,6 +309,7 @@ public class RankServiceImpl extends ServiceImpl<RankMapper,Rank> implements Ran
|
|||||||
rankNode.setUserId(i.getUserId());
|
rankNode.setUserId(i.getUserId());
|
||||||
rankNode.setRankId(i.getId());
|
rankNode.setRankId(i.getId());
|
||||||
rankNode.setDraw(i.getDraw());
|
rankNode.setDraw(i.getDraw());
|
||||||
|
rankNode.setRankAwardValue(i.getRankAwardValue());
|
||||||
return rankNode;
|
return rankNode;
|
||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
@@ -311,6 +330,7 @@ public class RankServiceImpl extends ServiceImpl<RankMapper,Rank> implements Ran
|
|||||||
rankNode.setUserId(i.getUserId());
|
rankNode.setUserId(i.getUserId());
|
||||||
rankNode.setRankId(i.getId());
|
rankNode.setRankId(i.getId());
|
||||||
rankNode.setDraw(i.getDraw());
|
rankNode.setDraw(i.getDraw());
|
||||||
|
rankNode.setRankAwardValue(i.getRankAwardValue());
|
||||||
return rankNode;
|
return rankNode;
|
||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
@@ -331,6 +351,7 @@ public class RankServiceImpl extends ServiceImpl<RankMapper,Rank> implements Ran
|
|||||||
rankNode.setUserId(i.getUserId());
|
rankNode.setUserId(i.getUserId());
|
||||||
rankNode.setRankId(i.getId());
|
rankNode.setRankId(i.getId());
|
||||||
rankNode.setDraw(i.getDraw());
|
rankNode.setDraw(i.getDraw());
|
||||||
|
rankNode.setRankAwardValue(i.getRankAwardValue());
|
||||||
return rankNode;
|
return rankNode;
|
||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user