Commit 33b6d4b1 by guanchen

代理商奖励小于0.000001的话 就不再写了

添加比例数组 修复潜在bug,查代理商时 都加agent_level<=4限制
parent cbdadbdb
......@@ -14,6 +14,9 @@ import java.util.Map;
*/
public class Constants {
public static final String AGENT_REWARD_QUEUE_KEY = "agent_reward_redis_city_key";
/**
* 奖励类型
*/
public static final int AGENT_REWARD_TYPE_YEAR_VIP = 710;
public static final String AGENT_REWARD_TYPE_YEAR_VIP_REMARK = "城市代理商所得的购买年-VIP";
public static final int AGENT_REWARD_TYPE_HALF_YEAR_VIP = 720;
......@@ -36,8 +39,39 @@ public class Constants {
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";
/**
* 回扣类型
*/
public static final int AGENT_REVOKE_TYPE_ACTIVATION = 100;
public static final String AGENT_REVOKE_TYPE_ACTIVATION_REMARK = "下单激活奖励扣回";
public static final int AGENT_REVOKE_TYPE_SELF_ORDER = 300;
public static final String AGENT_REVOKE_TYPE_SELF_ORDER_REMARK = "自购省奖励扣回";
public static final int AGENT_REVOKE_TYPE_SHARE_ORDER = 400;
public static final String AGENT_REVOKE_TYPE_SHARE_ORDER_REMARK = "分享赚奖励扣回";
public static Map<Integer, String> AGENT_REVOKE_TYPE_MAP = new HashMap<Integer, String>();
/**
* 回扣状态
*/
public static final int REVOKE_STATE_PENDING = 100;
public static final int REVOKE_STATE_DONE = 120;
public static final int REVOKE_STATE_DO_NOTHING = 190;
public static final int REVOKE_STATE_FAILED = 99;
/**
* 结算状态
*/
public static final int SETTLE_STATE_ON_THE_WAY = 100;
public static final int SETTLE_STATE_PRE = 200;
public static final int SETTLE_STATE_DONE = 300;
/**
* 最小奖励金额 小于此不写入
*/
public static final BigDecimal MIN_REWARD = new BigDecimal("0.00000001");
static {
/**
* 代理商平推奖励比例配置
*/
AGENT_RATE_MAP.put(AGENT_REWARD_TYPE_YEAR_VIP, new HashMap<Integer, BigDecimal>());
AGENT_RATE_MAP.put(AGENT_REWARD_TYPE_HALF_YEAR_VIP, new HashMap<Integer, BigDecimal>());
AGENT_RATE_MAP.put(AGENT_REWARD_TYPE_SVIP, new HashMap<Integer, BigDecimal>());
......@@ -73,5 +107,11 @@ public class Constants {
AGENT_REWARD_REMARK.put(AGENT_REWARD_TYPE_REDPACK, AGENT_REWARD_TYPE_REDPACK_REMARK);
AGENT_REWARD_REMARK.put(AGENT_REWARD_TYPE_SELF_ORDER, AGENT_REWARD_TYPE_SELF_ORDER_REMARK);
AGENT_REWARD_REMARK.put(AGENT_REWARD_TYPE_SHARE_ORDER, AGENT_REWARD_TYPE_SHARE_ORDER_REMARK);
/**
* 代理商奖励回扣类型
*/
AGENT_REVOKE_TYPE_MAP.put(AGENT_REVOKE_TYPE_ACTIVATION, AGENT_REVOKE_TYPE_ACTIVATION_REMARK);
AGENT_REVOKE_TYPE_MAP.put(AGENT_REVOKE_TYPE_SELF_ORDER, AGENT_REVOKE_TYPE_SELF_ORDER_REMARK);
AGENT_REVOKE_TYPE_MAP.put(AGENT_REVOKE_TYPE_SHARE_ORDER, AGENT_REVOKE_TYPE_SHARE_ORDER_REMARK);
}
}
......@@ -21,6 +21,6 @@ public class UserAgentSqlProvider {
return "SELECT b.* " +
"FROM user_agent a " +
"JOIN user_agent b on a." + parentColumnName + "=b.agent_id " +
"WHERE a.user_id=#{userId}";
"WHERE a.user_id=#{userId} and b.agent_level<=4";
}
}
......@@ -4,10 +4,11 @@ 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 lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import lombok.Data;
@Data
@TableName(value = "agent_reward")
......@@ -37,12 +38,24 @@ public class AgentReward implements Serializable {
private Integer userId;
/**
* 奖励类型 40 开卡奖励 50 充值奖励 30 购买VIP会员 20 购买超级VIP会员
* 奖励类型 40 开卡奖励 50 充值奖励 30 购买VIP会员 20 购买超级VIP会员 60 分享赚 300 自购省
*/
@TableField(value = "reward_type")
private Integer rewardType;
/**
* 子类型 good_friend:好友奖励
*/
@TableField(value = "reward_type_child")
private String rewardTypeChild;
/**
* 来源类型 good_friend:好友奖励 空:非好友奖励
*/
@TableField(value = "source_type_v")
private String sourceTypeV;
/**
* 描述
*/
@TableField(value = "reward_remark")
......@@ -177,6 +190,18 @@ public class AgentReward implements Serializable {
@TableField(value = "create_time")
private LocalDateTime createTime;
/**
* 来源基础金额
*/
@TableField(value = "all_money_ori")
private BigDecimal allMoneyOri;
/**
* 该金额所有的计算比率值
*/
@TableField(value = "ratio_all")
private String ratioAll;
private static final long serialVersionUID = 1L;
public static final String COL_AGENT_ID = "agent_id";
......@@ -187,6 +212,10 @@ public class AgentReward implements Serializable {
public static final String COL_REWARD_TYPE = "reward_type";
public static final String COL_REWARD_TYPE_CHILD = "reward_type_child";
public static final String COL_SOURCE_TYPE_V = "source_type_v";
public static final String COL_REWARD_REMARK = "reward_remark";
public static final String COL_REWARD_STATUS = "reward_status";
......@@ -234,4 +263,8 @@ public class AgentReward implements Serializable {
public static final String COL_DELETED_AT = "deleted_at";
public static final String COL_CREATE_TIME = "create_time";
public static final String COL_ALL_MONEY_ORI = "all_money_ori";
public static final String COL_RATIO_ALL = "ratio_all";
}
\ No newline at end of file
......@@ -27,6 +27,10 @@ public class AgentRewardMessage extends BaseModel {
String subOrderSn;
BigDecimal orderCommission;
BigDecimal sourceUserPayment;
String orderGoodsId;
String orderTitle;
String rewardTypeChild;
String orderRateArray;
// 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;
......
......@@ -190,6 +190,8 @@ public class AgentRewardQueueTask {
agentReward.setOrderType(message.getOrderType());
agentReward.setOrderSn(message.getOrderSn());
agentReward.setSubOrderSn(message.getSubOrderSn());
agentReward.setGoodsId(message.getOrderGoodsId());
agentReward.setTitle(message.getOrderTitle());
agentReward.setAgentLevel(agent.getLevel());
agentReward.setUserId(agent.getUserId());
agentReward.setRewardRemark(AGENT_REWARD_REMARK.get(message.getRewardType()));
......@@ -197,6 +199,7 @@ public class AgentRewardQueueTask {
agentReward.setSourceUserLevel(sourceUserLevel);
agentReward.setCreatedAt(System.currentTimeMillis() / 1000L);
agentReward.setCommissionRate(commissionRate);
agentReward.setRewardTypeChild(message.getRewardTypeChild());
/**
* agent_reward里:
* money 面额(message里, 需要上供的代理商自己获得的奖励)
......@@ -209,14 +212,28 @@ public class AgentRewardQueueTask {
if (rewardType == AGENT_REWARD_TYPE_YEAR_VIP || rewardType == AGENT_REWARD_TYPE_HALF_YEAR_VIP || rewardType == AGENT_REWARD_TYPE_SVIP) {
rewardBasement = message.getSourceUserPayment();
} else {
/**
* 订单相关, 还需要写入两个字段:all_money_ori 原始佣金, 继承下来的比例数组
*/
rewardBasement = message.getAgentReward();
agentReward.setAllMoneyOri(message.getOrderCommission());
agentReward.setRatioAll(message.getOrderRateArray());
}
BigDecimal reward = rewardBasement.multiply(commissionRate);
/**
* 小于0.000001的奖励 不写入
*/
if (reward.compareTo(MIN_REWARD) < 0) {
logger.info("代理商({})平推奖励金额小于0.000001, 忽略不写入. msg:{}", agent.getAgentId(), message);
return true;
} else {
agentReward.setMoney(rewardBasement);
agentReward.setCommissionAcount(rewardBasement);
agentReward.setAmount(rewardBasement.multiply(commissionRate));
agentReward.setCommission(rewardBasement.multiply(commissionRate));
agentReward.setAmount(reward);
agentReward.setCommission(reward);
agentReward.setCashCode("0");
return agentRewardService.save(agentReward);
}
} catch (Exception e) {
logger.error(e.getMessage(), e);
return false;
......
package com.lanren.huhu.partner.schedule;
import com.lanren.huhu.partner.domain.AgentRevokeRecords;
import com.lanren.huhu.partner.domain.AgentReward;
import com.lanren.huhu.partner.service.AgentRevokeRecordsService;
import com.lanren.huhu.partner.service.AgentRewardService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.util.List;
import static com.lanren.huhu.partner.constants.Constants.*;
/**
* @author chen
* @title: RevokeAgentRewardTask
......@@ -15,23 +27,81 @@ import org.springframework.stereotype.Component;
@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);
// }
// }
@Autowired
AgentRevokeRecordsService agentRevokeRecordsService;
@Autowired
AgentRewardService agentRewardService;
@Scheduled(fixedDelay = 5000L)
public void runScheduledTask() {
logger.info("run RevokeAgentRewardTask");
runConsume();
}
private void runConsume() {
List<AgentRevokeRecords> revokeRecordList = null;
while (true) {
try {
revokeRecordList = agentRevokeRecordsService.getAllPending();
if (null == revokeRecordList || revokeRecordList.size() == 0) {
break;
}
process(revokeRecordList);
} catch (Exception e) {
logger.error("process revoke failed. {}", revokeRecordList);
logger.error(e.getMessage(), e);
}
}
}
@Async
public void process(List<AgentRevokeRecords> revokeRecordList) {
for (AgentRevokeRecords agentRevokeRecord : revokeRecordList) {
process(agentRevokeRecord);
}
}
public void process(AgentRevokeRecords revokeRecord) {
int revokeType = revokeRecord.getRevokeType();
if (!AGENT_REVOKE_TYPE_MAP.keySet().contains(revokeType)) {
logger.info("未知的奖励类型 跳过不处理: {}", revokeRecord);
return;
}
AgentReward agentReward = null;
if (revokeType == AGENT_REVOKE_TYPE_ACTIVATION || revokeType == AGENT_REVOKE_TYPE_SELF_ORDER) {
agentReward = agentRewardService.getOneByRefId(revokeRecord.getRefId());
} else if (revokeType == AGENT_REVOKE_TYPE_SHARE_ORDER) {
agentReward = agentRewardService.getOneBySubOrderSn(revokeRecord.getOrderType(), revokeRecord.getOrderSn(), revokeRecord.getSubOrderSn());
} else {
revokeRecord.setState(REVOKE_STATE_DO_NOTHING);
}
/**
* 已结算状态 插负, 未结算状态 抹平
*/
if (null != agentReward) {
if (agentReward.getSettleState() == SETTLE_STATE_DONE) {
agentReward.setAmount(agentReward.getAmount().negate());
agentReward.setCommission(agentReward.getCommission().negate());
if (agentRewardService.insertOne(agentReward) > 0) {
revokeRecord.setState(REVOKE_STATE_DONE);
} else {
revokeRecord.setState(REVOKE_STATE_FAILED);
}
} else if (agentReward.getSettleState() == SETTLE_STATE_ON_THE_WAY || agentReward.getSettleState() == SETTLE_STATE_PRE) {
agentReward.setAmount(new BigDecimal(0));
agentReward.setCommission(new BigDecimal(0));
if (agentRewardService.updateById(agentReward)) {
revokeRecord.setState(REVOKE_STATE_DONE);
} else {
revokeRecord.setState(REVOKE_STATE_FAILED);
}
} else {
revokeRecord.setState(REVOKE_STATE_DO_NOTHING);
}
} else {
revokeRecord.setState(REVOKE_STATE_DO_NOTHING);
}
agentRevokeRecordsService.updateById(revokeRecord);
}
}
......@@ -22,5 +22,5 @@ public interface AgentRevokeRecordsService extends IService<AgentRevokeRecords>{
int insertOrUpdateSelective(AgentRevokeRecords record);
AgentRevokeRecords getOnePending();
List<AgentRevokeRecords> getAllPending();
}
......@@ -24,5 +24,12 @@ public interface AgentRewardService extends IService<AgentReward> {
int insertOrUpdateSelective(AgentReward record);
AgentReward getOneByRefId(String refId);
AgentReward getOneBySubOrderSn(String orderType, String orderSn, String subOrderSn);
int insertOne(AgentReward record);
}
......@@ -8,6 +8,9 @@ import com.lanren.huhu.partner.service.AgentRevokeRecordsService;
import org.springframework.stereotype.Service;
import java.util.List;
import static com.lanren.huhu.partner.constants.Constants.REVOKE_STATE_PENDING;
/**
* @title: ${NAME}
* @projectName partner
......@@ -17,10 +20,6 @@ import java.util.List;
*/
@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);
......@@ -39,9 +38,9 @@ public class AgentRevokeRecordsServiceImpl extends ServiceImpl<AgentRevokeRecord
}
@Override
public AgentRevokeRecords getOnePending() {
public List<AgentRevokeRecords> getAllPending() {
QueryWrapper<AgentRevokeRecords> wrapper = new QueryWrapper<AgentRevokeRecords>();
wrapper.eq("state", STATE_PENDING).orderByAsc("updated_at");
return baseMapper.selectOne(wrapper);
wrapper.eq("state", REVOKE_STATE_PENDING).orderByAsc("updated_at");
return baseMapper.selectList(wrapper);
}
}
......@@ -6,6 +6,7 @@ import com.lanren.huhu.partner.domain.AgentReward;
import com.lanren.huhu.partner.service.AgentRewardService;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
......@@ -38,5 +39,24 @@ public class AgentRewardServiceImpl extends ServiceImpl<AgentRewardMapper, Agent
public int insertOrUpdateSelective(AgentReward record) {
return baseMapper.insertOrUpdateSelective(record);
}
@Override
public AgentReward getOneByRefId(String refId) {
return null;
}
@Override
public AgentReward getOneBySubOrderSn(String orderType, String orderSn, String subOrderSn) {
return null;
}
@Override
public int insertOne(AgentReward record) {
List<AgentReward> list = new ArrayList<AgentReward>();
list.add(record);
return batchInsert(list);
}
}
......@@ -8,6 +8,8 @@
<result column="agent_level" property="agentLevel" />
<result column="user_id" property="userId" />
<result column="reward_type" property="rewardType" />
<result column="reward_type_child" property="rewardTypeChild" />
<result column="source_type_v" property="sourceTypeV" />
<result column="reward_remark" property="rewardRemark" />
<result column="reward_status" property="rewardStatus" />
<result column="money" property="money" />
......@@ -32,14 +34,16 @@
<result column="updated_at" property="updatedAt" />
<result column="deleted_at" property="deletedAt" />
<result column="create_time" property="createTime" />
<result column="all_money_ori" property="allMoneyOri" />
<result column="ratio_all" property="ratioAll" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, agent_id, agent_level, user_id, reward_type, reward_remark, reward_status, money,
amount, cash_code, recharge_time, commission_acount, commission_rate, commission,
reference_id, settle_state, source_order, source_user_id, source_user_level, goods_id,
title, order_type, order_sn, sub_order_sn, reward_extend, created_at, updated_at,
deleted_at, create_time
id, agent_id, agent_level, user_id, reward_type, reward_type_child, source_type_v,
reward_remark, reward_status, money, amount, cash_code, recharge_time, commission_acount,
commission_rate, commission, reference_id, settle_state, source_order, source_user_id,
source_user_level, goods_id, title, order_type, order_sn, sub_order_sn, reward_extend,
created_at, updated_at, deleted_at, create_time, all_money_ori, ratio_all
</sql>
<update id="updateBatch" parameterType="java.util.List">
<!--@mbg.generated-->
......@@ -65,6 +69,16 @@
when id = #{item.id} then #{item.rewardType}
</foreach>
</trim>
<trim prefix="reward_type_child = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when id = #{item.id} then #{item.rewardTypeChild}
</foreach>
</trim>
<trim prefix="source_type_v = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when id = #{item.id} then #{item.sourceTypeV}
</foreach>
</trim>
<trim prefix="reward_remark = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when id = #{item.id} then #{item.rewardRemark}
......@@ -185,6 +199,16 @@
when id = #{item.id} then #{item.createTime}
</foreach>
</trim>
<trim prefix="all_money_ori = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when id = #{item.id} then #{item.allMoneyOri}
</foreach>
</trim>
<trim prefix="ratio_all = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when id = #{item.id} then #{item.ratioAll}
</foreach>
</trim>
</trim>
where id in
<foreach close=")" collection="list" item="item" open="(" separator=", ">
......@@ -194,20 +218,21 @@
<insert id="batchInsert" keyColumn="id" keyProperty="id" parameterType="map" useGeneratedKeys="true">
<!--@mbg.generated-->
insert into agent_reward
(agent_id, agent_level, user_id, reward_type, reward_remark, reward_status, money,
amount, cash_code, recharge_time, commission_acount, commission_rate, commission,
reference_id, settle_state, source_order, source_user_id, source_user_level, goods_id,
title, order_type, order_sn, sub_order_sn, reward_extend, created_at, updated_at,
deleted_at, create_time)
(agent_id, agent_level, user_id, reward_type, reward_type_child, source_type_v, reward_remark,
reward_status, money, amount, cash_code, recharge_time, commission_acount, commission_rate,
commission, reference_id, settle_state, source_order, source_user_id, source_user_level,
goods_id, title, order_type, order_sn, sub_order_sn, reward_extend, created_at,
updated_at, deleted_at, create_time, all_money_ori, ratio_all)
values
<foreach collection="list" item="item" separator=",">
(#{item.agentId}, #{item.agentLevel}, #{item.userId}, #{item.rewardType}, #{item.rewardRemark},
#{item.rewardStatus}, #{item.money}, #{item.amount}, #{item.cashCode}, #{item.rechargeTime},
#{item.commissionAcount}, #{item.commissionRate}, #{item.commission}, #{item.referenceId},
#{item.settleState}, #{item.sourceOrder}, #{item.sourceUserId}, #{item.sourceUserLevel},
#{item.goodsId}, #{item.title}, #{item.orderType}, #{item.orderSn}, #{item.subOrderSn},
#{item.rewardExtend}, #{item.createdAt}, #{item.updatedAt}, #{item.deletedAt},
#{item.createTime})
(#{item.agentId}, #{item.agentLevel}, #{item.userId}, #{item.rewardType}, #{item.rewardTypeChild},
#{item.sourceTypeV}, #{item.rewardRemark}, #{item.rewardStatus}, #{item.money},
#{item.amount}, #{item.cashCode}, #{item.rechargeTime}, #{item.commissionAcount},
#{item.commissionRate}, #{item.commission}, #{item.referenceId}, #{item.settleState},
#{item.sourceOrder}, #{item.sourceUserId}, #{item.sourceUserLevel}, #{item.goodsId},
#{item.title}, #{item.orderType}, #{item.orderSn}, #{item.subOrderSn}, #{item.rewardExtend},
#{item.createdAt}, #{item.updatedAt}, #{item.deletedAt}, #{item.createTime}, #{item.allMoneyOri},
#{item.ratioAll})
</foreach>
</insert>
<insert id="insertOrUpdate" keyColumn="id" keyProperty="id" parameterType="com.lanren.huhu.partner.domain.AgentReward" useGeneratedKeys="true">
......@@ -221,6 +246,8 @@
agent_level,
user_id,
reward_type,
reward_type_child,
source_type_v,
reward_remark,
reward_status,
money,
......@@ -245,6 +272,8 @@
updated_at,
deleted_at,
create_time,
all_money_ori,
ratio_all,
</trim>
values
<trim prefix="(" suffix=")" suffixOverrides=",">
......@@ -255,6 +284,8 @@
#{agentLevel},
#{userId},
#{rewardType},
#{rewardTypeChild},
#{sourceTypeV},
#{rewardRemark},
#{rewardStatus},
#{money},
......@@ -279,6 +310,8 @@
#{updatedAt},
#{deletedAt},
#{createTime},
#{allMoneyOri},
#{ratioAll},
</trim>
on duplicate key update
<trim suffixOverrides=",">
......@@ -289,6 +322,8 @@
agent_level = #{agentLevel},
user_id = #{userId},
reward_type = #{rewardType},
reward_type_child = #{rewardTypeChild},
source_type_v = #{sourceTypeV},
reward_remark = #{rewardRemark},
reward_status = #{rewardStatus},
money = #{money},
......@@ -313,6 +348,8 @@
updated_at = #{updatedAt},
deleted_at = #{deletedAt},
create_time = #{createTime},
all_money_ori = #{allMoneyOri},
ratio_all = #{ratioAll},
</trim>
</insert>
<insert id="insertOrUpdateSelective" keyColumn="id" keyProperty="id" parameterType="com.lanren.huhu.partner.domain.AgentReward" useGeneratedKeys="true">
......@@ -334,6 +371,12 @@
<if test="rewardType != null">
reward_type,
</if>
<if test="rewardTypeChild != null">
reward_type_child,
</if>
<if test="sourceTypeV != null">
source_type_v,
</if>
<if test="rewardRemark != null">
reward_remark,
</if>
......@@ -406,6 +449,12 @@
<if test="createTime != null">
create_time,
</if>
<if test="allMoneyOri != null">
all_money_ori,
</if>
<if test="ratioAll != null">
ratio_all,
</if>
</trim>
values
<trim prefix="(" suffix=")" suffixOverrides=",">
......@@ -424,6 +473,12 @@
<if test="rewardType != null">
#{rewardType},
</if>
<if test="rewardTypeChild != null">
#{rewardTypeChild},
</if>
<if test="sourceTypeV != null">
#{sourceTypeV},
</if>
<if test="rewardRemark != null">
#{rewardRemark},
</if>
......@@ -496,6 +551,12 @@
<if test="createTime != null">
#{createTime},
</if>
<if test="allMoneyOri != null">
#{allMoneyOri},
</if>
<if test="ratioAll != null">
#{ratioAll},
</if>
</trim>
on duplicate key update
<trim suffixOverrides=",">
......@@ -514,6 +575,12 @@
<if test="rewardType != null">
reward_type = #{rewardType},
</if>
<if test="rewardTypeChild != null">
reward_type_child = #{rewardTypeChild},
</if>
<if test="sourceTypeV != null">
source_type_v = #{sourceTypeV},
</if>
<if test="rewardRemark != null">
reward_remark = #{rewardRemark},
</if>
......@@ -586,6 +653,12 @@
<if test="createTime != null">
create_time = #{createTime},
</if>
<if test="allMoneyOri != null">
all_money_ori = #{allMoneyOri},
</if>
<if test="ratioAll != null">
ratio_all = #{ratioAll},
</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