init
This commit is contained in:
@@ -2,11 +2,13 @@ package com.ruoyi.test;
|
|||||||
|
|
||||||
import com.ruoyi.cai.rank.RankManager;
|
import com.ruoyi.cai.rank.RankManager;
|
||||||
import com.ruoyi.cai.rank.RankNode;
|
import com.ruoyi.cai.rank.RankNode;
|
||||||
|
import com.ruoyi.cai.service.RankService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -20,6 +22,8 @@ public class CaiUnitTest {
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private RankManager rankManager;
|
private RankManager rankManager;
|
||||||
|
@Autowired
|
||||||
|
private RankService rankService;
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void rank(){
|
public void rank(){
|
||||||
@@ -36,5 +40,9 @@ public class CaiUnitTest {
|
|||||||
log.info("userId={}, score={}", node.getUserId(),node.getScore());
|
log.info("userId={}, score={}", node.getUserId(),node.getScore());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@Test
|
||||||
|
public void saveRank(){
|
||||||
|
rankService.saveDayRank(LocalDate.now(),1);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
|
|||||||
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.ruoyi.cai.domain.Rank;
|
import com.ruoyi.cai.domain.Rank;
|
||||||
|
import com.ruoyi.cai.dto.admin.vo.RankAdminVo;
|
||||||
import com.ruoyi.cai.service.RankService;
|
import com.ruoyi.cai.service.RankService;
|
||||||
import com.ruoyi.common.annotation.Log;
|
import com.ruoyi.common.annotation.Log;
|
||||||
import com.ruoyi.common.core.controller.BaseController;
|
import com.ruoyi.common.core.controller.BaseController;
|
||||||
@@ -38,8 +39,8 @@ public class RankController extends BaseController {
|
|||||||
*/
|
*/
|
||||||
@SaCheckPermission("cai:rank:list")
|
@SaCheckPermission("cai:rank:list")
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
public TableDataInfo<Rank> list(Rank bo, PageQuery pageQuery) {
|
public TableDataInfo<RankAdminVo> list(RankAdminVo bo, PageQuery pageQuery) {
|
||||||
Page<Rank> page = rankService.page(pageQuery.build(), Wrappers.lambdaQuery(bo));
|
Page<RankAdminVo> page = rankService.pageAdmin(pageQuery, bo);
|
||||||
return TableDataInfo.build(page);
|
return TableDataInfo.build(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package com.ruoyi.cai.domain;
|
package com.ruoyi.cai.domain;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import com.ruoyi.common.constant.DateConstant;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
@@ -9,6 +11,7 @@ import java.util.Date;
|
|||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
import com.ruoyi.common.core.domain.BaseEntity;
|
import com.ruoyi.common.core.domain.BaseEntity;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 榜单对象 cai_rank
|
* 榜单对象 cai_rank
|
||||||
@@ -39,7 +42,8 @@ public class Rank implements Serializable {
|
|||||||
* 榜单期数
|
* 榜单期数
|
||||||
*/
|
*/
|
||||||
private String rankTime;
|
private String rankTime;
|
||||||
|
@DateTimeFormat(pattern = DateConstant.PATTERN_DATE)
|
||||||
|
@JsonFormat(pattern = DateConstant.PATTERN_DATE)
|
||||||
private LocalDate rankBeginTime;
|
private LocalDate rankBeginTime;
|
||||||
private LocalDate rankEndTime;
|
private LocalDate rankEndTime;
|
||||||
private Integer orderRank;
|
private Integer orderRank;
|
||||||
|
|||||||
@@ -0,0 +1,35 @@
|
|||||||
|
package com.ruoyi.cai.dto.admin.vo;
|
||||||
|
|
||||||
|
import com.ruoyi.cai.domain.Rank;
|
||||||
|
import com.ruoyi.common.annotation.Sensitive;
|
||||||
|
import com.ruoyi.common.enums.SensitiveStrategy;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class RankAdminVo extends Rank {
|
||||||
|
/**
|
||||||
|
* 用户号/ID号
|
||||||
|
*/
|
||||||
|
private String usercode;
|
||||||
|
/**
|
||||||
|
* 昵称
|
||||||
|
*/
|
||||||
|
private String nickname;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手机号
|
||||||
|
*/
|
||||||
|
@Sensitive(strategy = SensitiveStrategy.PHONE)
|
||||||
|
private String mobile;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 头像
|
||||||
|
*/
|
||||||
|
private String avatar;
|
||||||
|
/**
|
||||||
|
* 性别
|
||||||
|
*/
|
||||||
|
private Integer gender;
|
||||||
|
private Integer age;
|
||||||
|
private Integer isAnchor;
|
||||||
|
}
|
||||||
@@ -3,6 +3,7 @@ package com.ruoyi.cai.job;
|
|||||||
import com.ruoyi.cai.service.RankService;
|
import com.ruoyi.cai.service.RankService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.scheduling.annotation.Scheduled;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.time.DayOfWeek;
|
import java.time.DayOfWeek;
|
||||||
@@ -16,6 +17,7 @@ public class RankJob {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private RankService rankService;
|
private RankService rankService;
|
||||||
|
|
||||||
|
@Scheduled(cron = "0 1 0 * * ? ")
|
||||||
public void persistentDb() {
|
public void persistentDb() {
|
||||||
LocalDate date = LocalDateTime.now().plusDays(-1).toLocalDate();
|
LocalDate date = LocalDateTime.now().plusDays(-1).toLocalDate();
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
package com.ruoyi.cai.mapper;
|
package com.ruoyi.cai.mapper;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.ruoyi.cai.domain.Rank;
|
import com.ruoyi.cai.domain.Rank;
|
||||||
|
import com.ruoyi.cai.dto.admin.vo.RankAdminVo;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 榜单Mapper接口
|
* 榜单Mapper接口
|
||||||
@@ -11,4 +14,5 @@ import com.ruoyi.cai.domain.Rank;
|
|||||||
*/
|
*/
|
||||||
public interface RankMapper extends BaseMapper<Rank> {
|
public interface RankMapper extends BaseMapper<Rank> {
|
||||||
|
|
||||||
|
Page<RankAdminVo> pageAdmin(@Param("build") Page<Object> build, @Param("bo") RankAdminVo bo);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,11 @@
|
|||||||
package com.ruoyi.cai.service;
|
package com.ruoyi.cai.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.ruoyi.cai.domain.Rank;
|
import com.ruoyi.cai.domain.Rank;
|
||||||
|
import com.ruoyi.cai.dto.admin.vo.RankAdminVo;
|
||||||
import com.ruoyi.cai.rank.RankNode;
|
import com.ruoyi.cai.rank.RankNode;
|
||||||
|
import com.ruoyi.common.core.domain.PageQuery;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -30,4 +33,6 @@ public interface RankService extends IService<Rank> {
|
|||||||
List<RankNode> getInviteRankLastWeek(int limit);
|
List<RankNode> getInviteRankLastWeek(int limit);
|
||||||
|
|
||||||
List<RankNode> getInviteRankLastDay(int limit);
|
List<RankNode> getInviteRankLastDay(int limit);
|
||||||
|
|
||||||
|
Page<RankAdminVo> pageAdmin(PageQuery pageQuery, RankAdminVo bo);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import com.ruoyi.cai.enums.ConsumeLogStatus;
|
|||||||
import com.ruoyi.cai.enums.ConsumeLogType;
|
import com.ruoyi.cai.enums.ConsumeLogType;
|
||||||
import com.ruoyi.cai.enums.account.AccountChangeCodeEnum;
|
import com.ruoyi.cai.enums.account.AccountChangeCodeEnum;
|
||||||
import com.ruoyi.cai.mapper.ConsumeLogMapper;
|
import com.ruoyi.cai.mapper.ConsumeLogMapper;
|
||||||
|
import com.ruoyi.cai.rank.RankManager;
|
||||||
import com.ruoyi.cai.service.*;
|
import com.ruoyi.cai.service.*;
|
||||||
import com.ruoyi.cai.util.NumCaUtil;
|
import com.ruoyi.cai.util.NumCaUtil;
|
||||||
import com.ruoyi.common.core.domain.model.LoginUser;
|
import com.ruoyi.common.core.domain.model.LoginUser;
|
||||||
@@ -93,23 +94,36 @@ public class ConsumeLogServiceImpl extends ServiceImpl<ConsumeLogMapper, Consume
|
|||||||
throw new ServiceException("分销失败!请联系管理员排查问题!");
|
throw new ServiceException("分销失败!请联系管理员排查问题!");
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
|
boolean oneInviteSend = false;
|
||||||
|
boolean oneUnionSend = false;
|
||||||
// 计算一级
|
// 计算一级
|
||||||
if(consumer.getOneUserId() != null && BooleanUtils.isTrue(consumer.getOneJoin())
|
if(consumer.getOneUserId() != null && BooleanUtils.isTrue(consumer.getOneJoin())
|
||||||
&& consumer.getOneAmount() > 0){
|
&& consumer.getOneAmount() > 0){
|
||||||
AccountChangeCodeEnum changeCodeEnum = ConsumeLogType.getOneInviteChange(code);
|
AccountChangeCodeEnum changeCodeEnum = ConsumeLogType.getOneInviteChange(code);
|
||||||
accountService.distribution(consumer,consumer.getOneUserId(),consumer.getOneAmount(),changeCodeEnum);
|
accountService.distribution(consumer,consumer.getOneUserId(),consumer.getOneAmount(),changeCodeEnum);
|
||||||
|
oneInviteSend = true;
|
||||||
}
|
}
|
||||||
// 计算工会
|
// 计算工会
|
||||||
if(consumer.getUnionUserId() != null && BooleanUtils.isTrue(consumer.getUnionJoin())
|
if(consumer.getUnionUserId() != null && BooleanUtils.isTrue(consumer.getUnionJoin())
|
||||||
&& consumer.getUnionAmount() > 0){
|
&& consumer.getUnionAmount() > 0){
|
||||||
AccountChangeCodeEnum changeCodeEnum = ConsumeLogType.getUnionChange(code);
|
AccountChangeCodeEnum changeCodeEnum = ConsumeLogType.getUnionChange(code);
|
||||||
accountService.distribution(consumer,consumer.getUnionUserId(),consumer.getUnionAmount(),changeCodeEnum);
|
accountService.distribution(consumer,consumer.getUnionUserId(),consumer.getUnionAmount(),changeCodeEnum);
|
||||||
|
oneUnionSend = true;
|
||||||
|
}
|
||||||
|
if(oneInviteSend){
|
||||||
|
rankManager.sendInviteRankMq(consumer.getOneUserId(),consumer.getOneAmount(),consumer.getTraceId());
|
||||||
|
}
|
||||||
|
if(oneUnionSend){
|
||||||
|
rankManager.sendInviteRankMq(consumer.getUnionUserId(),consumer.getUnionAmount(),consumer.getTraceId());
|
||||||
}
|
}
|
||||||
}catch (Exception e){
|
}catch (Exception e){
|
||||||
log.error("分销发生未知错误,请联系开发检查!",e);
|
log.error("分销发生未知错误,请联系开发检查!",e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RankManager rankManager;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ConsumeLog calculateInitFenxiao(ConsumeLog consumeLog){
|
public ConsumeLog calculateInitFenxiao(ConsumeLog consumeLog){
|
||||||
if(ConsumeLogType.RECHARGE.getCode().equals(consumeLog.getType())){
|
if(ConsumeLogType.RECHARGE.getCode().equals(consumeLog.getType())){
|
||||||
|
|||||||
@@ -3,9 +3,11 @@ 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 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.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.ruoyi.cai.domain.Rank;
|
import com.ruoyi.cai.domain.Rank;
|
||||||
import com.ruoyi.cai.domain.User;
|
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.SystemConfigEnum;
|
||||||
import com.ruoyi.cai.enums.account.AccountChangeCodeEnum;
|
import com.ruoyi.cai.enums.account.AccountChangeCodeEnum;
|
||||||
import com.ruoyi.cai.manager.IdManager;
|
import com.ruoyi.cai.manager.IdManager;
|
||||||
@@ -18,6 +20,7 @@ import com.ruoyi.cai.service.AccountChangeLogService;
|
|||||||
import com.ruoyi.cai.service.RankService;
|
import com.ruoyi.cai.service.RankService;
|
||||||
import com.ruoyi.cai.service.UserService;
|
import com.ruoyi.cai.service.UserService;
|
||||||
import com.ruoyi.cai.util.CaiDateUtil;
|
import com.ruoyi.cai.util.CaiDateUtil;
|
||||||
|
import com.ruoyi.common.core.domain.PageQuery;
|
||||||
import com.ruoyi.common.exception.ServiceException;
|
import com.ruoyi.common.exception.ServiceException;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -331,4 +334,9 @@ public class RankServiceImpl extends ServiceImpl<RankMapper,Rank> implements Ran
|
|||||||
return rankNode;
|
return rankNode;
|
||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Page<RankAdminVo> pageAdmin(PageQuery pageQuery, RankAdminVo bo) {
|
||||||
|
return baseMapper.pageAdmin(pageQuery.build(),bo);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -88,9 +88,9 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
|||||||
if(query.getType() == 1){
|
if(query.getType() == 1){
|
||||||
mapperQuery.setUsercodeAndNickname(query.getText());
|
mapperQuery.setUsercodeAndNickname(query.getText());
|
||||||
}else if(query.getType() == 2){
|
}else if(query.getType() == 2){
|
||||||
mapperQuery.setUsercode(query.getText());
|
|
||||||
}else if(query.getType() == 3){
|
|
||||||
mapperQuery.setNickname(query.getText());
|
mapperQuery.setNickname(query.getText());
|
||||||
|
}else if(query.getType() == 3){
|
||||||
|
mapperQuery.setUsercode(query.getText());
|
||||||
}
|
}
|
||||||
return baseMapper.pageApp(page.build(),mapperQuery);
|
return baseMapper.pageApp(page.build(),mapperQuery);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,16 +4,29 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.ruoyi.cai.mapper.RankMapper">
|
<mapper namespace="com.ruoyi.cai.mapper.RankMapper">
|
||||||
|
|
||||||
<resultMap type="com.ruoyi.cai.domain.Rank" id="RankResult">
|
<select id="pageAdmin" resultType="com.ruoyi.cai.dto.admin.vo.RankAdminVo">
|
||||||
<result property="id" column="id"/>
|
select t1.*,t2.usercode,t2.nickname,t2.mobile,t2.avatar,t2.gender,t2.is_anchor,t2.age
|
||||||
<result property="type" column="type"/>
|
from cai_rank t1
|
||||||
<result property="dateType" column="date_type"/>
|
left join cai_user t2 on t1.user_id = t2.id
|
||||||
<result property="rankTime" column="rank_time"/>
|
<where>
|
||||||
<result property="num" column="num"/>
|
<if test="bo.mobile != null and bo.mobile != ''">
|
||||||
<result property="userId" column="user_id"/>
|
and t2.mobile = #{bo.mobile}
|
||||||
<result property="draw" column="draw"/>
|
</if>
|
||||||
<result property="createTime" column="create_time"/>
|
<if test="bo.usercode != null and bo.usercode != ''">
|
||||||
</resultMap>
|
and t2.usercode = #{bo.usercode}
|
||||||
|
</if>
|
||||||
|
<if test="bo.rankBeginTime != null">
|
||||||
|
and t1.rank_begin_time = #{bo.rankBeginTime}
|
||||||
|
</if>
|
||||||
|
<if test="bo.type != null">
|
||||||
|
and t1.type = #{bo.type}
|
||||||
|
</if>
|
||||||
|
<if test="bo.dataType != null">
|
||||||
|
and t1.data_type = #{bo.dataType}
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
order by t1.order_rank
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
package com.ruoyi.common.constant;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>created on 2021/7/15</p>
|
||||||
|
*
|
||||||
|
* @author zhangliang
|
||||||
|
*/
|
||||||
|
public class DateConstant {
|
||||||
|
|
||||||
|
public final static String PATTERN_DATETIME = "yyyy-MM-dd HH:mm:ss";
|
||||||
|
|
||||||
|
public final static String PATTERN_DATE = "yyyy-MM-dd";
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user