Commit 75e7fe9d by guanchen

添加接口 可以按代理商id查找他的层级上级和平推上级

添加代理商回扣表
parent 9b2f2489
......@@ -3,6 +3,7 @@ package com.lanren.huhu.partner.controller;
import com.lanren.huhu.partner.manager.AgentManager;
import com.lanren.huhu.partner.model.Agent;
import com.lanren.huhu.partner.model.AgentResponse;
import com.lanren.huhu.partner.model.ParentAgent;
import com.lanren.huhu.partner.result.Result;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -12,6 +13,7 @@ import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.time.LocalDateTime;
import java.util.ArrayList;
/**
* @author chen
......@@ -32,19 +34,25 @@ public class AgentController {
return agentManager.getAgentLevel(agent.getAgentId());
}
@RequestMapping(value = "/reward/divide", method = RequestMethod.POST)
public Result<String> divideReward(@RequestHeader HttpHeaders headers) {
if (logger.isInfoEnabled()) {
logger.info("AgentController divideReward, header:{},time:{}", headers.keySet().toArray(), LocalDateTime.now());
}
return agentManager.divideReward();
}
@RequestMapping(value = "/reward/push", method = RequestMethod.POST)
public Result<String> pushReward(@RequestHeader HttpHeaders headers) {
if (logger.isInfoEnabled()) {
logger.info("AgentController divideReward, header:{},time:{}", headers.keySet().toArray(), LocalDateTime.now());
logger.info("AgentController pushReward, header:{},time:{}", headers.keySet().toArray(), LocalDateTime.now());
}
return agentManager.pushReward();
}
@RequestMapping(value = "/hierarchy/parent", method = RequestMethod.POST)
public Result<ArrayList<ParentAgent>> getHierarchyParents(@RequestBody @Valid Agent agent, @RequestHeader HttpHeaders headers) {
if (logger.isInfoEnabled()) {
logger.info("AgentController getHierarchyParents, header:{},time:{}", headers.keySet().toArray(), LocalDateTime.now());
}
return agentManager.getHierarchyParents(agent.getAgentId());
}
@RequestMapping(value = "/pingtui/parent", method = RequestMethod.POST)
public Result<ArrayList<ParentAgent>> getPingtuiParents(@RequestBody @Valid Agent agent, @RequestHeader HttpHeaders headers) {
if (logger.isInfoEnabled()) {
logger.info("AgentController getPingtuiParents, header:{},time:{}", headers.keySet().toArray(), LocalDateTime.now());
}
return agentManager.getPingtuiParents(agent.getAgentId());
}
}
package com.lanren.huhu.partner.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.lanren.huhu.partner.domain.AgentRevokeRecords;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface AgentRevokeRecordsMapper extends BaseMapper<AgentRevokeRecords> {
int updateBatch(List<AgentRevokeRecords> list);
int batchInsert(@Param("list") List<AgentRevokeRecords> list);
int insertOrUpdate(AgentRevokeRecords record);
int insertOrUpdateSelective(AgentRevokeRecords record);
}
\ No newline at end of file
package com.lanren.huhu.partner.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import lombok.Data;
@Data
@TableName(value = "agent_revoke_records")
public class AgentRevokeRecords implements Serializable {
/**
* 主键id
*/
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 订单id
*/
@TableField(value = "order_id")
private String orderId;
/**
* 用户id(被邀请者的用户id)
*/
@TableField(value = "user_id")
private Long userId;
/**
* 回收的关联id
*/
@TableField(value = "ref_id")
private String refId;
/**
* 回收类型:100 邀请奖励的回收,120分享赚奖励的回收
*/
@TableField(value = "revoke_type")
private Integer revokeType;
/**
* 100 未处理 200处理成功
*/
@TableField(value = "state")
private Integer state;
/**
* 创建时间
*/
@TableField(value = "created_at")
private Long createdAt;
/**
* 更新时间
*/
@TableField(value = "updated_at")
private Long updatedAt;
/**
* 订单类型
*/
@TableField(value = "order_type")
private String orderType;
/**
* 订单号
*/
@TableField(value = "order_sn")
private String orderSn;
/**
* 子订单号
*/
@TableField(value = "sub_order_sn")
private String subOrderSn;
private static final long serialVersionUID = 1L;
public static final String COL_ORDER_ID = "order_id";
public static final String COL_USER_ID = "user_id";
public static final String COL_REF_ID = "ref_id";
public static final String COL_REVOKE_TYPE = "revoke_type";
public static final String COL_STATE = "state";
public static final String COL_CREATED_AT = "created_at";
public static final String COL_UPDATED_AT = "updated_at";
public static final String COL_ORDER_TYPE = "order_type";
public static final String COL_ORDER_SN = "order_sn";
public static final String COL_SUB_ORDER_SN = "sub_order_sn";
}
\ No newline at end of file
......@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
import com.lanren.huhu.partner.domain.UserAgent;
import com.lanren.huhu.partner.model.AgentResponse;
import com.lanren.huhu.partner.model.AgentRewardMessage;
import com.lanren.huhu.partner.model.ParentAgent;
import com.lanren.huhu.partner.result.Result;
import com.lanren.huhu.partner.service.UserAgentService;
import org.slf4j.Logger;
......@@ -15,6 +16,10 @@ import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import static com.lanren.huhu.partner.constants.Constants.PARENT_COLUMN_NAME_CENGJI;
import static com.lanren.huhu.partner.constants.Constants.PARENT_COLUMN_NAME_PINGTUI;
/**
* @author chen
......@@ -47,12 +52,11 @@ public class AgentManager {
return result;
}
public Result<String> divideReward() {
ListOperations<String, String> ops = redisTemplate.opsForList();
logger.info("message is: {}", ops.rightPop("agent_reward_redis_city_key"));
return new Result<>();
}
/**
* @description: 测试使用, 推送一条代理商奖励的待处理消息到redis队列
* @author chen
* @date 2019-07-04 14:48
*/
public Result<String> pushReward() {
ListOperations<String, String> ops = redisTemplate.opsForList();
AgentRewardMessage agentRewardMessage = new AgentRewardMessage();
......@@ -70,4 +74,26 @@ public class AgentManager {
ops.leftPush("agent_reward_redis_city_key", JSON.toJSONString(agentRewardMessage));
return new Result<>();
}
/**
* @description: 获取一个代理商的层级上级
* @author chen
* @date 2019-07-04 14:48
*/
public Result<ArrayList<ParentAgent>> getHierarchyParents(Integer agentId) {
ArrayList<ParentAgent> parentAgents = (ArrayList<ParentAgent>) userAgentService.getParentAgentListByAgentId(agentId, PARENT_COLUMN_NAME_CENGJI);
Result<ArrayList<ParentAgent>> result = new Result<ArrayList<ParentAgent>>();
result.setData(parentAgents);
return result;
}
/**
* @description: 获取一个代理商的平推上级
* @author chen
* @date 2019-07-04 14:48
*/
public Result<ArrayList<ParentAgent>> getPingtuiParents(Integer agentId) {
ArrayList<ParentAgent> parentAgents = (ArrayList<ParentAgent>) userAgentService.getParentAgentListByAgentId(agentId, PARENT_COLUMN_NAME_PINGTUI);
Result<ArrayList<ParentAgent>> result = new Result<ArrayList<ParentAgent>>();
result.setData(parentAgents);
return result;
}
}
......@@ -56,7 +56,6 @@ public class AgentRewardQueueTask {
public void runScheduledTask() {
logger.info("run AgentRewardQueueTask");
runConsume();
logger.info("run AgentRewardQueueTask done");
}
private void runConsume() {
......
package com.lanren.huhu.partner.schedule;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
/**
* @author chen
* @title: RevokeAgentRewardTask
* @projectName partner
* @description: 扣回代理商的奖励
* @package com.lanren.huhu.partner.schedule
* @date 2019-07-04 11:41
*/
@Component
public class RevokeAgentRewardTask {
private static Logger logger = LoggerFactory.getLogger(RevokeAgentRewardTask.class);
// @Autowired
// AgentRevokeRecordsService agentRevokeRecordsService;
//
// @Scheduled(fixedDelay = 5000L)
// public void runScheduledTask() {
// logger.info("run RevokeAgentRewardTask");
// runConsume();
// }
//
// private void runConsume() {
// try {
// AgentRevokeRecords revokeRecords = agentRevokeRecordsService.getOnePending();
// if (null != revokeRecords) {
//
// }
// } catch (Exception e) {
// logger.error(e.getMessage(), e);
// }
// }
}
package com.lanren.huhu.partner.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lanren.huhu.partner.domain.AgentRevokeRecords;
import java.util.List;
/**
* @title: ${NAME}
* @projectName partner
* @description: TODO
* @author chen
* @package ${PACKAGE_NAME}
* @date 2019-07-04 11:44
*/
public interface AgentRevokeRecordsService extends IService<AgentRevokeRecords>{
int updateBatch(List<AgentRevokeRecords> list);
int batchInsert(List<AgentRevokeRecords> list);
int insertOrUpdate(AgentRevokeRecords record);
int insertOrUpdateSelective(AgentRevokeRecords record);
AgentRevokeRecords getOnePending();
}
package com.lanren.huhu.partner.service;
import java.util.List;
import com.lanren.huhu.partner.domain.OrderTaobaoJdCommission;
import com.baomidou.mybatisplus.extension.service.IService;
/**
import com.lanren.huhu.partner.domain.OrderTaobaoJdCommission;
import java.util.List;
/**
*
* @author houseme
* @date 2019-07-01 14:43
......@@ -22,4 +23,5 @@ public interface OrderTaobaoJdCommissionService extends IService<OrderTaobaoJdCo
int insertOrUpdateSelective(OrderTaobaoJdCommission record);
OrderTaobaoJdCommission getOneByOrderSn(String orderType, String orderSn);
}
package com.lanren.huhu.partner.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lanren.huhu.partner.dao.AgentRevokeRecordsMapper;
import com.lanren.huhu.partner.domain.AgentRevokeRecords;
import com.lanren.huhu.partner.service.AgentRevokeRecordsService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @title: ${NAME}
* @projectName partner
* @description: TODO
* @author chen
* @package ${PACKAGE_NAME}
* @date 2019-07-04 11:44
*/
@Service
public class AgentRevokeRecordsServiceImpl extends ServiceImpl<AgentRevokeRecordsMapper, AgentRevokeRecords> implements AgentRevokeRecordsService{
private static final int STATE_PENDING = 100;
private static final int STATE_DONE = 120;
private static final int STATE_DO_NOTHING = 190;
@Override
public int updateBatch(List<AgentRevokeRecords> list) {
return baseMapper.updateBatch(list);
}
@Override
public int batchInsert(List<AgentRevokeRecords> list) {
return baseMapper.batchInsert(list);
}
@Override
public int insertOrUpdate(AgentRevokeRecords record) {
return baseMapper.insertOrUpdate(record);
}
@Override
public int insertOrUpdateSelective(AgentRevokeRecords record) {
return baseMapper.insertOrUpdateSelective(record);
}
@Override
public AgentRevokeRecords getOnePending() {
QueryWrapper<AgentRevokeRecords> wrapper = new QueryWrapper<AgentRevokeRecords>();
wrapper.eq("state", STATE_PENDING).orderByAsc("updated_at");
return baseMapper.selectOne(wrapper);
}
}
package com.lanren.huhu.partner.service.impl;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.List;
import com.lanren.huhu.partner.domain.OrderTaobaoJdCommission;
import com.lanren.huhu.partner.dao.OrderTaobaoJdCommissionMapper;
import com.lanren.huhu.partner.domain.OrderTaobaoJdCommission;
import com.lanren.huhu.partner.service.OrderTaobaoJdCommissionService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
*
* @author houseme
......@@ -35,4 +35,11 @@ public class OrderTaobaoJdCommissionServiceImpl extends ServiceImpl<OrderTaobaoJ
public int insertOrUpdateSelective(OrderTaobaoJdCommission record) {
return baseMapper.insertOrUpdateSelective(record);
}
@Override
public OrderTaobaoJdCommission getOneByOrderSn(String orderType, String orderSn) {
QueryWrapper<OrderTaobaoJdCommission> wrapper = new QueryWrapper<OrderTaobaoJdCommission>();
wrapper.eq("type", orderType).eq("order_sn", orderSn);
return baseMapper.selectOne(wrapper);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.lanren.huhu.partner.dao.AgentRevokeRecordsMapper">
<resultMap id="BaseResultMap" type="com.lanren.huhu.partner.domain.AgentRevokeRecords">
<!--@mbg.generated-->
<id column="id" property="id" />
<result column="order_id" property="orderId" />
<result column="user_id" property="userId" />
<result column="ref_id" property="refId" />
<result column="revoke_type" property="revokeType" />
<result column="state" property="state" />
<result column="created_at" property="createdAt" />
<result column="updated_at" property="updatedAt" />
<result column="order_type" property="orderType" />
<result column="order_sn" property="orderSn" />
<result column="sub_order_sn" property="subOrderSn" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, order_id, user_id, ref_id, revoke_type, `state`, created_at, updated_at, order_type,
order_sn, sub_order_sn
</sql>
<update id="updateBatch" parameterType="java.util.List">
<!--@mbg.generated-->
update agent_revoke_records
<trim prefix="set" suffixOverrides=",">
<trim prefix="order_id = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when id = #{item.id} then #{item.orderId}
</foreach>
</trim>
<trim prefix="user_id = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when id = #{item.id} then #{item.userId}
</foreach>
</trim>
<trim prefix="ref_id = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when id = #{item.id} then #{item.refId}
</foreach>
</trim>
<trim prefix="revoke_type = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when id = #{item.id} then #{item.revokeType}
</foreach>
</trim>
<trim prefix="`state` = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when id = #{item.id} then #{item.state}
</foreach>
</trim>
<trim prefix="created_at = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when id = #{item.id} then #{item.createdAt}
</foreach>
</trim>
<trim prefix="updated_at = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when id = #{item.id} then #{item.updatedAt}
</foreach>
</trim>
<trim prefix="order_type = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when id = #{item.id} then #{item.orderType}
</foreach>
</trim>
<trim prefix="order_sn = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when id = #{item.id} then #{item.orderSn}
</foreach>
</trim>
<trim prefix="sub_order_sn = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when id = #{item.id} then #{item.subOrderSn}
</foreach>
</trim>
</trim>
where id in
<foreach close=")" collection="list" item="item" open="(" separator=", ">
#{item.id}
</foreach>
</update>
<insert id="batchInsert" keyColumn="id" keyProperty="id" parameterType="map" useGeneratedKeys="true">
<!--@mbg.generated-->
insert into agent_revoke_records
(order_id, user_id, ref_id, revoke_type, `state`, created_at, updated_at, order_type,
order_sn, sub_order_sn)
values
<foreach collection="list" item="item" separator=",">
(#{item.orderId}, #{item.userId}, #{item.refId}, #{item.revokeType}, #{item.state},
#{item.createdAt}, #{item.updatedAt}, #{item.orderType}, #{item.orderSn}, #{item.subOrderSn}
)
</foreach>
</insert>
<insert id="insertOrUpdate" keyColumn="id" keyProperty="id" parameterType="com.lanren.huhu.partner.domain.AgentRevokeRecords" useGeneratedKeys="true">
<!--@mbg.generated-->
insert into agent_revoke_records
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
order_id,
user_id,
ref_id,
revoke_type,
`state`,
created_at,
updated_at,
order_type,
order_sn,
sub_order_sn,
</trim>
values
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id},
</if>
#{orderId},
#{userId},
#{refId},
#{revokeType},
#{state},
#{createdAt},
#{updatedAt},
#{orderType},
#{orderSn},
#{subOrderSn},
</trim>
on duplicate key update
<trim suffixOverrides=",">
<if test="id != null">
id = #{id},
</if>
order_id = #{orderId},
user_id = #{userId},
ref_id = #{refId},
revoke_type = #{revokeType},
`state` = #{state},
created_at = #{createdAt},
updated_at = #{updatedAt},
order_type = #{orderType},
order_sn = #{orderSn},
sub_order_sn = #{subOrderSn},
</trim>
</insert>
<insert id="insertOrUpdateSelective" keyColumn="id" keyProperty="id" parameterType="com.lanren.huhu.partner.domain.AgentRevokeRecords" useGeneratedKeys="true">
<!--@mbg.generated-->
insert into agent_revoke_records
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="orderId != null">
order_id,
</if>
<if test="userId != null">
user_id,
</if>
<if test="refId != null">
ref_id,
</if>
<if test="revokeType != null">
revoke_type,
</if>
<if test="state != null">
`state`,
</if>
<if test="createdAt != null">
created_at,
</if>
<if test="updatedAt != null">
updated_at,
</if>
<if test="orderType != null">
order_type,
</if>
<if test="orderSn != null">
order_sn,
</if>
<if test="subOrderSn != null">
sub_order_sn,
</if>
</trim>
values
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id},
</if>
<if test="orderId != null">
#{orderId},
</if>
<if test="userId != null">
#{userId},
</if>
<if test="refId != null">
#{refId},
</if>
<if test="revokeType != null">
#{revokeType},
</if>
<if test="state != null">
#{state},
</if>
<if test="createdAt != null">
#{createdAt},
</if>
<if test="updatedAt != null">
#{updatedAt},
</if>
<if test="orderType != null">
#{orderType},
</if>
<if test="orderSn != null">
#{orderSn},
</if>
<if test="subOrderSn != null">
#{subOrderSn},
</if>
</trim>
on duplicate key update
<trim suffixOverrides=",">
<if test="id != null">
id = #{id},
</if>
<if test="orderId != null">
order_id = #{orderId},
</if>
<if test="userId != null">
user_id = #{userId},
</if>
<if test="refId != null">
ref_id = #{refId},
</if>
<if test="revokeType != null">
revoke_type = #{revokeType},
</if>
<if test="state != null">
`state` = #{state},
</if>
<if test="createdAt != null">
created_at = #{createdAt},
</if>
<if test="updatedAt != null">
updated_at = #{updatedAt},
</if>
<if test="orderType != null">
order_type = #{orderType},
</if>
<if test="orderSn != null">
order_sn = #{orderSn},
</if>
<if test="subOrderSn != null">
sub_order_sn = #{subOrderSn},
</if>
</trim>
</insert>
</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