Commit 1a141efa by guanchen

更新汇总拓展用户

parent b5d62299
......@@ -8,6 +8,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Scope;
import org.springframework.data.redis.cache.RedisCacheConfiguration;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.cache.RedisCacheWriter;
......@@ -19,7 +20,6 @@ import org.springframework.data.redis.connection.lettuce.LettucePoolingClientCon
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.RedisSerializationContext;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import org.springframework.util.ObjectUtils;
/**
* @author houseme
......@@ -47,6 +47,7 @@ public class RedisConfiguration {
}
@Bean
@Scope("prototype")
public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate redisTemplate = new RedisTemplate();
redisTemplate.setConnectionFactory(redisConnectionFactory);
......@@ -68,6 +69,7 @@ public class RedisConfiguration {
}
@Bean
@Scope("prototype")
public RedisTemplate redisTemplatePush(@Value("${spring.redis.database2}") int pushDb,
@Value("${spring.redis.host}") String host,
@Value("${spring.redis.port}") int port,
......
......@@ -35,7 +35,6 @@ public class Constants {
public static final int AGENT_LEVEL_2 = 2;
public static final int AGENT_LEVEL_3 = 3;
public static final int AGENT_LEVEL_4 = 4;
public static final String DATE_FORMAT = "yyyy-MM-dd hh:mm:ss";
public static final String DISTRIBUTE_REDIS_LOCK_KEY = "huhu:partner:distribute:redis:key";
public static final String PARENT_COLUMN_NAME_CENGJI = "parent_agent_id";
public static final String PARENT_COLUMN_NAME_PINGTUI = "presenter_id";
......
package com.lanren.huhu.partner.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.lanren.huhu.partner.domain.PartnerInviteRelation;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.SelectProvider;
import java.util.List;
@Mapper
public interface PartnerInviteRelationMapper extends BaseMapper<PartnerInviteRelation> {
......@@ -18,6 +19,14 @@ public interface PartnerInviteRelationMapper extends BaseMapper<PartnerInviteRel
int insertOrUpdateSelective(PartnerInviteRelation record);
@SelectProvider(type = PartnerInviteRelationSqlProvider.class, method = "getPartnerInviteRelationListByRegDay")
List<PartnerInviteRelation> getPartnerInviteRelationListByRegDay(String datStr);
/**
* <p>
* 查询 : 根据state状态查询用户列表,分页显示
* 注意!!: 如果入参是有多个,需要加注解指定参数名才能在xml中取值
* </p>
*
* @param page 分页对象,xml中可以从里面进行取值,传递参数 Page 即自动分页,必须放在第一位(你可以继承Page实现自己的分页对象)
* @return 分页对象
*/
IPage<PartnerInviteRelation> selectPageByTs(Page<PartnerInviteRelation> page, @Param("beginTs") Long beginTs, @Param("endTs") Long endTs);
}
\ No newline at end of file
package com.lanren.huhu.partner.dao;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
/**
* @author chen
* @title: PartnerInviteRelationSqlProvider
* @projectName partner
* @description: TODO
* @package com.lanren.huhu.partner.dao
* @date 2019-07-08 17:57
*/
public class PartnerInviteRelationSqlProvider {
public String getPartnerInviteRelationListByRegDay(@Param("datStr") String datStr) {
return "SELECT * " +
"FROM partner_invite_relation " +
"WHERE regiter_time " +
"BETWEEN UNIX_TIMESTAMP('" + datStr + " 00:00:00') " +
"AND UNIX_TIMESTAMP('" + datStr + " 23:59:59');";
}
}
......@@ -39,7 +39,7 @@ public interface UserAgentMapper extends BaseMapper<UserAgent> {
// @Select("SELECT b.* " +
// "FROM user_agent a " +
// "JOIN user_agent b on a.#{parentColumnName}=b.agent_id " +
// "WHERE a.user_id=#{userId}")
// "WHERE b.user_id=#{userId}")
// List<UserAgent> getChildListByUserId(Integer userId, String parentColumnName);
@SelectProvider(type = UserAgentSqlProvider.class, method = "getChildListByUserId")
......
......@@ -71,6 +71,7 @@ public class AgentManager {
agentRewardMessage.setOrderSn("507596802910534728");
agentRewardMessage.setSubOrderSn("507596802910534728");
agentRewardMessage.setOrderCommission(new BigDecimal("35.400000"));
agentRewardMessage.setSourceOrder("8888");
logger.info("写入队列");
ops.leftPush(AGENT_REWARD_QUEUE_KEY, JSON.toJSONString(agentRewardMessage));
return new Result<>();
......
......@@ -31,6 +31,7 @@ public class AgentRewardMessage extends BaseModel {
String orderTitle;
String rewardTypeChild;
String orderRateArray;
String sourceOrder;
// public AgentRewardMessage(int rewardType, String rechargeTime, int sourceUserId, String referenceId, int agentId, BigDecimal agentReward, int settleState, String orderType, String orderSn, String subOrderSn, BigDecimal orderCommission) {
// this.rewardType = rewardType;
// this.rechargeTime = rechargeTime;
......
package com.lanren.huhu.partner.schedule;
import com.baomidou.mybatisplus.autoconfigure.MybatisPlusProperties;
import com.lanren.huhu.partner.constants.Constants;
import com.lanren.huhu.partner.domain.AgentExpandDaily;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.lanren.huhu.partner.domain.AgentExpandDetail;
import com.lanren.huhu.partner.domain.PartnerInviteRelation;
import com.lanren.huhu.partner.domain.UserAgent;
import com.lanren.huhu.partner.model.User;
import com.lanren.huhu.partner.model.ParentAgent;
import com.lanren.huhu.partner.service.AgentExpandDailyService;
import com.lanren.huhu.partner.service.AgentExpandDetailService;
import com.lanren.huhu.partner.service.PartnerInviteRelationService;
import com.lanren.huhu.partner.service.UserService;
import com.lanren.huhu.partner.util.DateUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -18,9 +17,6 @@ import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
......@@ -37,6 +33,8 @@ import static com.lanren.huhu.partner.constants.Constants.PARENT_COLUMN_NAME_CEN
@Component
public class AgentDailyExpandTask {
private static Logger logger = LoggerFactory.getLogger(AgentDailyExpandTask.class);
private static final int PAGE_SIZE = 1000;
private static final long DELAY = 2 * 60 * 60 * 1000L;
@Autowired
PartnerInviteRelationService partnerInviteRelationService;
......@@ -46,32 +44,39 @@ public class AgentDailyExpandTask {
AgentExpandDetailService agentExpandDetailService;
@Autowired
AgentExpandDailyService agentExpandDailyService;
@Autowired
MybatisPlusProperties mybatisPlusProperties;
// @Scheduled(cron="0 5 */2 * * *")
@Scheduled(fixedDelay = 10000L)
@Scheduled(fixedDelay = DELAY)
public void runScheduledTask() {
logger.info("MapperLocations is: {}", mybatisPlusProperties.getMapperLocations());
// logger.info("run AgentDailyExpandTask");
// runSummary();
try {
Date dat = new Date(System.currentTimeMillis() - DELAY);
String datStr = DateUtils.format(dat, DateUtils.FORMAT_SHORT);
logger.info("run AgentDailyExpandTask {}", datStr);
runSummary(datStr);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
}
@Async
public void runSummary() {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
public void runSummary(String datStr) {
try {
Date dat = DateUtils.parse(datStr, DateUtils.FORMAT_SHORT);
int now = (int)(System.currentTimeMillis() / 1000L);
Date dat = new Date(System.currentTimeMillis() - 10 * 60 * 1000L);
String datStr = df.format(dat);
datStr = "2019-07-06";
List<PartnerInviteRelation> partnerInviteRelationList = partnerInviteRelationService.getPartnerInviteRelationListByRegDay(datStr);
int pageNo = 1;
long beginTs = DateUtils.parse(datStr, DateUtils.FORMAT_SHORT).getTime() / 1000L;
long endTs = beginTs + 24 * 60 * 60L - 1L;
while (true) {
Page<PartnerInviteRelation> page = new Page<PartnerInviteRelation>(pageNo, PAGE_SIZE);
IPage<PartnerInviteRelation> ipage = partnerInviteRelationService.selectPageByTs(page, beginTs, endTs);
List<PartnerInviteRelation> partnerInviteRelationList = ipage.getRecords();
if (partnerInviteRelationList != null && partnerInviteRelationList.size() > 0) {
for (PartnerInviteRelation partnerInviteRelation : partnerInviteRelationList) {
List<UserAgent> userAgentList = userService.getUserAgentChildListByUserId(partnerInviteRelation.getUserId(), PARENT_COLUMN_NAME_CENGJI);
for (UserAgent userAgent : userAgentList) {
List<ParentAgent> parentAgentList = userService.getAgentListByUserId(partnerInviteRelation.getUserId(), PARENT_COLUMN_NAME_CENGJI);
for (ParentAgent parentAgent : parentAgentList) {
AgentExpandDetail detail = new AgentExpandDetail();
detail.setDat(dat);
detail.setAgentId(userAgent.getAgentId());
detail.setUserId(userAgent.getUserId());
detail.setAgentId(parentAgent.getAgentId());
detail.setUserId(parentAgent.getUserId());
detail.setExpandUserId(partnerInviteRelation.getUserId());
detail.setExpandUserRegTime(new Date(partnerInviteRelation.getRegiterTime() * 1000L));
detail.setCreatedAt(now);
......@@ -82,5 +87,13 @@ public class AgentDailyExpandTask {
if (partnerInviteRelationList.size() > 0) {
agentExpandDailyService.updateByDatByDetail(datStr);
}
pageNo++;
} else {
break;
}
}
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
}
}
......@@ -25,8 +25,7 @@ import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.annotation.Transactional;
import sun.management.resources.agent;
import org.springframework.util.StringUtils;
import java.math.BigDecimal;
import java.time.LocalDateTime;
......@@ -240,7 +239,11 @@ public class AgentRewardQueueTask {
agentReward.setAgentLevel(agent.getLevel());
agentReward.setUserId(agent.getUserId());
agentReward.setRewardRemark(AGENT_REWARD_REMARK.get(message.getRewardType()));
if (StringUtils.isEmpty(message.getSourceOrder())) {
agentReward.setSourceOrder(message.getReferenceId());
} else {
agentReward.setSourceOrder(message.getSourceOrder());
}
agentReward.setSourceUserLevel(sourceUserLevel);
agentReward.setCreatedAt(System.currentTimeMillis() / 1000L);
agentReward.setCommissionRate(commissionRate);
......
......@@ -2,7 +2,6 @@ package com.lanren.huhu.partner.schedule;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
/**
* @author chen
......@@ -12,7 +11,7 @@ import org.springframework.stereotype.Component;
* @package com.lanren.huhu.partner.schedule
* @date 2019-07-02 15:45
*/
@Component
//@Component
public class PartnerSettleTask {
private static Logger logger = LoggerFactory.getLogger(PartnerSettleTask.class);
......
package com.lanren.huhu.partner.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lanren.huhu.partner.domain.PartnerInviteRelation;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @title: ${NAME}
* @projectName partner
......@@ -22,10 +25,5 @@ public interface PartnerInviteRelationService extends IService<PartnerInviteRela
int insertOrUpdateSelective(PartnerInviteRelation record);
/**
* 根据日期查找新增用户
* @param datStr
* @return
*/
List<PartnerInviteRelation> getPartnerInviteRelationListByRegDay(String datStr);
IPage<PartnerInviteRelation> selectPageByTs(Page<PartnerInviteRelation> page, Long beginTs, Long endTs);
}
package com.lanren.huhu.partner.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lanren.huhu.partner.dao.PartnerInviteRelationMapper;
import com.lanren.huhu.partner.domain.PartnerInviteRelation;
import com.lanren.huhu.partner.service.PartnerInviteRelationService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lanren.huhu.partner.domain.PartnerInviteRelation;
import java.util.List;
import com.lanren.huhu.partner.dao.PartnerInviteRelationMapper;
import com.lanren.huhu.partner.service.PartnerInviteRelationService;
/**
* @title: ${NAME}
* @projectName partner
......@@ -41,8 +41,11 @@ public class PartnerInviteRelationServiceImpl extends ServiceImpl<PartnerInviteR
}
@Override
public List<PartnerInviteRelation> getPartnerInviteRelationListByRegDay(String datStr) {
logger.info("datStr is: {}", datStr);
return baseMapper.getPartnerInviteRelationListByRegDay(datStr);
public IPage<PartnerInviteRelation> selectPageByTs(Page<PartnerInviteRelation> page, Long beginTs, Long endTs) {
// 不进行 count sql 优化,解决 MP 无法自动优化 SQL 问题,这时候你需要自己查询 count 部分
// page.setOptimizeCountSql(false);
// 当 total 为非 0 时(默认为 0),分页插件不会进行 count 查询
// 要点!! 分页返回的对象与传入的对象是同一个
return baseMapper.selectPageByTs(page, beginTs, endTs);
}
}
......@@ -102,7 +102,7 @@ mybatis-plus:
logging:
level:
#打印SQL信息
com.lanren.huhu.partner.dao: debug
com.lanren.huhu.partner.dao: info
......
......@@ -2,9 +2,9 @@
<configuration>
<property name="pattern" value="[%level] %d{yy-MM-dd HH:mm:ss.SSS} [%thread] %logger{50}:%line - %msg%n"/>
<property name="log_file" value="@logfile_path@/@profiles.active@/@artifactId@-@profiles.active@"/>
<property name="MaxHistory" value="15"/><!--日志保留天数-->
<property name="MaxFileSize" value="1024MB"/><!--单个文件大小-->
<property name="totalSizeCap" value="1024MB"/><!--单个文件大小-->
<property name="MaxHistory" value="7"/><!--日志保留天数-->
<property name="MaxFileSize" value="256MB"/><!--单个文件大小-->
<property name="totalSizeCap" value="256MB"/><!--单个文件大小-->
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
......
......@@ -627,4 +627,7 @@
</if>
</trim>
</insert>
<select id="selectPageByTs" resultType="com.lanren.huhu.partner.domain.PartnerInviteRelation">
SELECT * FROM partner_invite_relation WHERE regiter_time BETWEEN #{beginTs} AND #{endTs}
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment