Commit ea68f2c1 by guanchen

添加修复已结算数据逻辑

parent f4966870
package com.lanren.huhu.partner.controller; import com.lanren.huhu.partner.manager.PartnerManager;import com.lanren.huhu.partner.model.Partner;import com.lanren.huhu.partner.model.PartnerResponse;import com.lanren.huhu.partner.result.Result;import com.lanren.huhu.partner.schedule.PartnerSettleTask;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.http.HttpHeaders;import org.springframework.web.bind.annotation.*; import javax.validation.Valid;import java.time.LocalDateTime; /** * @Author houseme * @Date 2019-06-26 11:00 * @Project partner * @Package com.lanren.huhu.partner.controller * @File: PartnerController */@RestController@RequestMapping("/v1/partner")public class PartnerController { private static Logger logger = LoggerFactory.getLogger(PartnerController.class); @Autowired private PartnerManager partnerManager; @Autowired private PartnerSettleTask partnerSettleTask; @RequestMapping(value = "/level", method = RequestMethod.POST) public Result<PartnerResponse> getPartnerLevel(@RequestBody @Valid Partner partner, @RequestHeader HttpHeaders headers) { if (logger.isInfoEnabled()) { logger.info("getPartnerLevel userId:{},header:{},time:{}", partner.getUserId(), headers.keySet().toArray(), LocalDateTime.now()); } return partnerManager.getPartnerLevel(partner.getUserId()); } /** * 测试使用 结算单个用户 */ @RequestMapping(value = "/finance", method = RequestMethod.POST) public Result<String> doFinanceSettle(@RequestBody @Valid Partner partner, @RequestHeader HttpHeaders headers) { if (logger.isInfoEnabled()) { logger.info("doFinanceSettle userId:{},header:{},time:{}", partner.getUserId(), headers.keySet().toArray(), LocalDateTime.now()); } return partnerManager.doFinanceSettle(partner.getUserId()); } /** * 结算全部用户 */ @RequestMapping(value = "/finance", method = RequestMethod.GET) public Result<String> doFinanceSettle(@RequestHeader HttpHeaders headers) { partnerSettleTask.runScheduledTask(); logger.info("============>" + Thread.currentThread().getName()); Result<String> result = new Result<String>(); result.setData("异步,正在执行刷新......"); return result; }}
\ No newline at end of file
package com.lanren.huhu.partner.controller; import com.lanren.huhu.partner.manager.PartnerManager;import com.lanren.huhu.partner.model.Partner;import com.lanren.huhu.partner.model.PartnerResponse;import com.lanren.huhu.partner.result.Result;import com.lanren.huhu.partner.schedule.PartnerSettleTask;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.http.HttpHeaders;import org.springframework.web.bind.annotation.*; import javax.validation.Valid;import java.time.LocalDateTime; /** * @Author houseme * @Date 2019-06-26 11:00 * @Project partner * @Package com.lanren.huhu.partner.controller * @File: PartnerController */@RestController@RequestMapping("/v1/partner")public class PartnerController { private static Logger logger = LoggerFactory.getLogger(PartnerController.class); @Autowired private PartnerManager partnerManager; @Autowired private PartnerSettleTask partnerSettleTask; @RequestMapping(value = "/level", method = RequestMethod.POST) public Result<PartnerResponse> getPartnerLevel(@RequestBody @Valid Partner partner, @RequestHeader HttpHeaders headers) { if (logger.isInfoEnabled()) { logger.info("getPartnerLevel userId:{},header:{},time:{}", partner.getUserId(), headers.keySet().toArray(), LocalDateTime.now()); } return partnerManager.getPartnerLevel(partner.getUserId()); } /** * 测试使用 结算单个用户 */ @RequestMapping(value = "/finance", method = RequestMethod.POST) public Result<String> doFinanceSettle(@RequestBody @Valid Partner partner, @RequestHeader HttpHeaders headers) { if (logger.isInfoEnabled()) { logger.info("doFinanceSettle userId:{},header:{},time:{}", partner.getUserId(), headers.keySet().toArray(), LocalDateTime.now()); } return partnerManager.doFinanceSettle(partner.getUserId()); } /** * 结算全部用户 */ @RequestMapping(value = "/finance", method = RequestMethod.GET) public Result<String> doFinanceSettle(@RequestHeader HttpHeaders headers) { partnerSettleTask.runSettle(); logger.info("============>" + Thread.currentThread().getName()); Result<String> result = new Result<String>(); result.setData("异步,正在执行刷新......"); return result; } /** * 汇总合伙人已结算数据 */ @RequestMapping(value = "/summary/{dateStr}/{uid}", method = RequestMethod.GET) public Result<String> doSummarySettled(@PathVariable("dateStr") String dateStr, @PathVariable("uid") int uid, @RequestHeader HttpHeaders headers) { return partnerManager.runSummary(dateStr, uid); }}
\ No newline at end of file
......
......@@ -2,10 +2,11 @@ package com.lanren.huhu.partner.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.lanren.huhu.partner.domain.PartnerAccountLog;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface PartnerAccountLogMapper extends BaseMapper<PartnerAccountLog> {
int updateBatch(List<PartnerAccountLog> list);
......
......@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.lanren.huhu.partner.domain.PartnerReward;
import com.lanren.huhu.partner.model.PartnerSettle;
import com.lanren.huhu.partner.model.PartnerSummaryContent;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
......@@ -29,4 +30,6 @@ public interface PartnerRewardMapper extends BaseMapper<PartnerReward> {
PartnerSettle selectPartnerSettleByTsAndUid(Long beginTs, Long endTs, Integer userId);
int updateRewardStatusByUidAndTs(Integer userId, Long beginTs, Long endTs);
PartnerSummaryContent getPartnerSummaryContentByUidAndTime(int userId, long beginTs, long endTs);
}
\ No newline at end of file
package com.lanren.huhu.partner.manager; import com.lanren.huhu.partner.domain.PartnerAccount;import com.lanren.huhu.partner.model.PartnerResponse;import com.lanren.huhu.partner.result.Result;import com.lanren.huhu.partner.schedule.PartnerSettleTask;import com.lanren.huhu.partner.service.PartnerAccountService;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component; import java.time.LocalDateTime; /** * @author houseme * @date 2019-06-26 10:56 * @Project partner * @Package com.lanren.huhu.partner.manager * @File: PartnerAccountManager */@Componentpublic class PartnerManager { private static Logger logger = LoggerFactory.getLogger(PartnerManager.class); @Autowired private PartnerAccountService partnerAccountService; @Autowired private PartnerSettleTask partnerSettleTask; /*** * 获取合伙人账户信息 * @param userId * @return */ public Result<PartnerAccount> findByUserId(Integer userId) { Result<PartnerAccount> result = new Result<>(); if (logger.isDebugEnabled()) { logger.info("PartnerAccountManager findByUserId userId:{},time:{}", userId, LocalDateTime.now()); } PartnerAccount partnerAccount = partnerAccountService.getOneByUserId(userId); result.setData(partnerAccount); return result; } /*** * 获取合伙人等级 10 普通, 20 高级, 30 超级 * @param userId * @return */ public Result<PartnerResponse> getPartnerLevel(Integer userId) { if (logger.isDebugEnabled()) { logger.info("PartnerAccountManager getPartnerLevel userId:{},time:{}", userId, LocalDateTime.now()); } Result<PartnerResponse> result = new Result<>(); PartnerAccount partnerAccount = partnerAccountService.getOneByUserId(userId); if (null != partnerAccount) { int partnerLevel; if (partnerAccount.getIsSuperPartner() == 1) { partnerLevel = 30; } else { partnerLevel = partnerAccount.getPartnerLevel(); } result.setData(new PartnerResponse(partnerLevel)); } else { result.setCode(601); } return result; } public Result<String> doFinanceSettle(int userId) { Result<String> result = new Result<>(); if (partnerSettleTask.doOneUserSettle(userId)) { result.setCode(0); } else { result.setCode(500); } return result; }}
\ No newline at end of file
package com.lanren.huhu.partner.manager; import com.lanren.huhu.partner.domain.PartnerAccount;import com.lanren.huhu.partner.model.PartnerResponse;import com.lanren.huhu.partner.result.Result;import com.lanren.huhu.partner.schedule.PartnerSettleTask;import com.lanren.huhu.partner.service.PartnerAccountService;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component; import java.time.LocalDateTime; /** * @author houseme * @date 2019-06-26 10:56 * @Project partner * @Package com.lanren.huhu.partner.manager * @File: PartnerAccountManager */@Componentpublic class PartnerManager { private static Logger logger = LoggerFactory.getLogger(PartnerManager.class); @Autowired private PartnerAccountService partnerAccountService; @Autowired private PartnerSettleTask partnerSettleTask; /*** * 获取合伙人账户信息 * @param userId * @return */ public Result<PartnerAccount> findByUserId(Integer userId) { Result<PartnerAccount> result = new Result<>(); if (logger.isDebugEnabled()) { logger.info("PartnerAccountManager findByUserId userId:{},time:{}", userId, LocalDateTime.now()); } PartnerAccount partnerAccount = partnerAccountService.getOneByUserId(userId); result.setData(partnerAccount); return result; } /*** * 获取合伙人等级 10 普通, 20 高级, 30 超级 * @param userId * @return */ public Result<PartnerResponse> getPartnerLevel(Integer userId) { if (logger.isDebugEnabled()) { logger.info("PartnerAccountManager getPartnerLevel userId:{},time:{}", userId, LocalDateTime.now()); } Result<PartnerResponse> result = new Result<>(); PartnerAccount partnerAccount = partnerAccountService.getOneByUserId(userId); if (null != partnerAccount) { int partnerLevel; if (partnerAccount.getIsSuperPartner() == 1) { partnerLevel = 30; } else { partnerLevel = partnerAccount.getPartnerLevel(); } result.setData(new PartnerResponse(partnerLevel)); } else { result.setCode(601); } return result; } public Result<String> doFinanceSettle(int userId) { Result<String> result = new Result<>(); if (partnerSettleTask.doOneUserSettle(userId)) { result.setCode(0); } else { result.setCode(500); } return result; } public Result<String> runSummary(String dateStr, int userId) { Result<String> result = new Result<>(); if (partnerSettleTask.runSummary(dateStr, userId)) { result.setCode(0); } else { result.setCode(500); } return result; }}
\ No newline at end of file
......
......@@ -32,17 +32,27 @@ public class AgentRewardMessage extends BaseModel {
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;
// this.sourceUserId = sourceUserId;
// this.referenceId = referenceId;
// this.agentId = agentId;
// this.agentReward = agentReward;
// this.settleState = settleState;
// this.orderType = orderType;
// this.orderSn = orderSn;
// this.subOrderSn = subOrderSn;
// this.orderCommission = orderCommission;
// }
@Override
public AgentRewardMessage clone() {
AgentRewardMessage one = new AgentRewardMessage();
one.rewardType = this.rewardType;
one.rechargeTime = this.rechargeTime;
one.sourceUserId = this.sourceUserId;
one.referenceId = this.referenceId;
one.agentId = this.agentId;
one.agentReward = this.agentReward;
one.settleState = this.settleState;
one.orderType = this.orderType;
one.orderSn = this.orderSn;
one.subOrderSn = this.subOrderSn;
one.orderCommission = this.orderCommission;
one.sourceUserPayment = this.sourceUserPayment;
one.orderGoodsId = this.orderGoodsId;
one.orderTitle = this.orderTitle;
one.rewardTypeChild = this.rewardTypeChild;
one.orderRateArray = this.orderRateArray;
one.sourceOrder = this.sourceOrder;
return one;
}
}
package com.lanren.huhu.partner.model;
import com.lanren.huhu.partner.model.base.BaseModel;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author chen
* @title: PartnerSummaryContent
* @projectName partner
* @description: TODO
* @package com.lanren.huhu.partner.model
* @date 2019-07-26 17:35
*/
@Data
public class PartnerSummaryContent extends BaseModel {
private BigDecimal cash;
private int num;
private BigDecimal upCash;
private int upNum;
private BigDecimal icash;
private int inum;
private BigDecimal pcash;
private int pnum;
private BigDecimal scash;
private int snum;
private BigDecimal rcash;
}
......@@ -115,7 +115,8 @@ public class AgentRewardQueueTask {
logger.info("代理商id: {} 不存在, 跳过不处理", message);
return;
}
if (userAgent.getAgentLevel() != AGENT_LEVEL_4 && (rewardType == AGENT_REWARD_TYPE_SELF_ORDER || rewardType == AGENT_REWARD_TYPE_SHARE_ORDER) ) {
if (userAgent.getAgentLevel() != AGENT_LEVEL_4 &&
(rewardType == AGENT_REWARD_TYPE_SELF_ORDER || rewardType == AGENT_REWARD_TYPE_SHARE_ORDER || rewardType == AGENT_REWARD_TYPE_REDPACK) ) {
logger.info("奖励类型{}, 代理商id: {} 不是城市代理, 跳过不处理", rewardType, message);
return;
}
......@@ -148,6 +149,10 @@ public class AgentRewardQueueTask {
break;
}
}
if (rewardList.size() > 3) {
logger.error("代理商推荐奖励处理异常 奖励人数超出3人, 奖励消息: {}", message);
return;
}
/**
* 如果上面检查通过, 证明代理商关系没问题, 后面处理只看rewardList的size
* 决定比例怎么分: 1个人-拿3份; 2个人-第二个拿后2份; 3个人-各1份
......@@ -174,9 +179,12 @@ public class AgentRewardQueueTask {
transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition);
for (int i=0; i<rewardList.size(); i++) {
BigDecimal commissionRate = rateList.get(i);
AgentReward reward = doInsert(commissionRate, rewardList.get(i), message);
AgentReward reward = doInsert(commissionRate, rewardList.get(i), message.clone());
if (reward != null) {
pushList.add(reward);
if (reward.getAgentLevel() == AGENT_LEVEL_4) {
pushRewardQueue(reward, message);
}
}
}
/**
......@@ -214,6 +222,13 @@ public class AgentRewardQueueTask {
}
}
private void pushRewardQueue(AgentReward reward, AgentRewardMessage message) {
// message.setAgentId(reward.getAgentId());
// message.setAgentReward(reward.getAmount());
// message.setOrderRateArray(reward.getRatioAll());
return;
}
private AgentReward doInsert(BigDecimal commissionRate, ParentAgent agent, AgentRewardMessage message) {
try {
int rewardType = message.getRewardType();
......
package com.lanren.huhu.partner.schedule;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.lanren.huhu.partner.constants.Constants;
import com.lanren.huhu.partner.domain.*;
import com.lanren.huhu.partner.model.PartnerSettle;
import com.lanren.huhu.partner.model.PartnerSnapshot;
import com.lanren.huhu.partner.model.PartnerSummaryContent;
import com.lanren.huhu.partner.service.*;
import com.lanren.huhu.partner.util.DateUtils;
import org.slf4j.Logger;
......@@ -18,6 +20,7 @@ import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Date;
import java.util.List;
......@@ -57,7 +60,7 @@ public class PartnerSettleTask {
PartnerIncomeSummaryService partnerIncomeSummaryService;
@Async
public void runScheduledTask() {
public void runSettle() {
logger.info("run PartnerSettleTask");
try {
long input = DateUtils.getLastMonth1stTimestamp(System.currentTimeMillis());
......@@ -516,4 +519,61 @@ public class PartnerSettleTask {
return false;
}
}
public boolean runSummary(String dateStr, int userId) {
try {
/**
* partner_account_log 跑结算日期
*/
Date dat = DateUtils.parse(dateStr, "yyyy-MM-dd");
int yeartime = Integer.parseInt(DateUtils.getYear(dat));
int monthtime = Integer.parseInt(DateUtils.getMonth(dat));
int daytime = Integer.parseInt(DateUtils.format(dat, "dd"));
PartnerAccountLog partnerAccountLog = partnerAccountLogService.getOneByUidAndDay(userId, yeartime, monthtime, daytime);
/**
* partner_income_summary 结算的数据月份 比dat早一个月
*/
long beginTs = DateUtils.getLastMonth1stTimestamp(dat.getTime()) / 1000L;
long endTs = DateUtils.getMonthLastTimestamp(dat.getTime()) / 1000L;
Date dat2 = new Date(beginTs * 1000L);
int yeartime2 = Integer.parseInt(DateUtils.getYear(dat2));
int monthtime2 = Integer.parseInt(DateUtils.getMonth(dat2));
PartnerIncomeSummary partnerIncomeSummary = partnerIncomeSummaryService.getOneByUidYearMonth(userId, yeartime2, monthtime2);
/**
* 获取显示的汇总数据
*/
PartnerSummaryContent partnerSummaryContent = partnerRewardService.getPartnerSummaryContentByUidAndTime(userId, beginTs, endTs);
/**
* 补差额
*/
BigDecimal sum = partnerSummaryContent.getCash()
.add(partnerSummaryContent.getUpCash())
.add(partnerSummaryContent.getIcash())
.add(partnerSummaryContent.getPcash())
.add(partnerSummaryContent.getScash())
.add(partnerSummaryContent.getRcash());
BigDecimal delta = partnerAccountLog.getChangeNum().subtract(sum);
partnerSummaryContent.setRcash(partnerSummaryContent.getRcash().add(delta));
/**
* 显示精度
*/
partnerSummaryContent.setCash(partnerSummaryContent.getCash().setScale(2, RoundingMode.HALF_UP));
partnerSummaryContent.setUpCash(partnerSummaryContent.getUpCash().setScale(2, RoundingMode.HALF_UP));
partnerSummaryContent.setIcash(partnerSummaryContent.getIcash().setScale(2, RoundingMode.HALF_UP));
partnerSummaryContent.setPcash(partnerSummaryContent.getPcash().setScale(2, RoundingMode.HALF_UP));
partnerSummaryContent.setScash(partnerSummaryContent.getScash().setScale(2, RoundingMode.HALF_UP));
partnerSummaryContent.setRcash(partnerSummaryContent.getRcash().setScale(2, RoundingMode.HALF_UP));
/**
* 更新数据
*/
partnerIncomeSummary.setContent(JSON.toJSONString(partnerSummaryContent));
partnerIncomeSummary.setIncome(partnerAccountLog.getChangeNum());
partnerIncomeSummaryService.updateById(partnerIncomeSummary);
return true;
} catch (Exception e) {
logger.error(e.getMessage(), e);
return false;
}
}
}
......@@ -24,6 +24,7 @@ public interface PartnerAccountLogService extends IService<PartnerAccountLog> {
int insertOrUpdateSelective(PartnerAccountLog record);
PartnerAccountLog getOneByUidAndDay(int userId, int yeartime, int monthtime, int daytime);
}
......@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lanren.huhu.partner.domain.PartnerReward;
import com.lanren.huhu.partner.model.PartnerSettle;
import com.lanren.huhu.partner.model.PartnerSummaryContent;
import java.util.List;
......@@ -46,5 +47,7 @@ public interface PartnerRewardService extends IService<PartnerReward> {
* 更新奖励状态
*/
int updateRewardStatusByUidAndTs(Integer userId, Long beginTs, Long endTs);
PartnerSummaryContent getPartnerSummaryContentByUidAndTime(int userId, long beginTs, long endTs);
}
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.PartnerAccountLogMapper;
import com.lanren.huhu.partner.domain.PartnerAccountLog;
......@@ -37,6 +38,22 @@ public class PartnerAccountLogServiceImpl extends ServiceImpl<PartnerAccountLogM
public int insertOrUpdateSelective(PartnerAccountLog record) {
return baseMapper.insertOrUpdateSelective(record);
}
@Override
public PartnerAccountLog getOneByUidAndDay(int userId, int yeartime, int monthtime, int daytime) {
// SELECT user_id,change_num
// FROM huhu_finance.partner_account_log
// WHERE yeartime=#{yeartime} AND monthtime=#{monthtime} AND daytime=#{daytime}
// AND user_id = #{userId}
// AND type=50
QueryWrapper<PartnerAccountLog> wrapper = new QueryWrapper<PartnerAccountLog>();
wrapper.eq("user_id", userId)
.eq("yeartime", yeartime)
.eq("monthtime", monthtime)
.eq("daytime", daytime)
.eq("type", 50);
return baseMapper.selectOne(wrapper);
}
}
......@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lanren.huhu.partner.dao.PartnerRewardMapper;
import com.lanren.huhu.partner.domain.PartnerReward;
import com.lanren.huhu.partner.model.PartnerSettle;
import com.lanren.huhu.partner.model.PartnerSummaryContent;
import com.lanren.huhu.partner.service.PartnerRewardService;
import org.springframework.stereotype.Service;
......@@ -66,5 +67,10 @@ public class PartnerRewardServiceImpl extends ServiceImpl<PartnerRewardMapper, P
public int updateRewardStatusByUidAndTs(Integer userId, Long beginTs, Long endTs) {
return baseMapper.updateRewardStatusByUidAndTs(userId, beginTs, endTs);
}
@Override
public PartnerSummaryContent getPartnerSummaryContentByUidAndTime(int userId, long beginTs, long endTs) {
return baseMapper.getPartnerSummaryContentByUidAndTime(userId, beginTs, endTs);
}
}
......@@ -679,7 +679,7 @@
SELECT
agent_id,
SUM(amount) balance,
SUM(case when agent_level=4 and reward_type in (50,740,60,760,300,750) then amount * 0.06 else 0 end) techCharge,
SUM(case when agent_level=4 and reward_type in (50,740,60,760,300,750) AND settle_state>=0 then amount * 0.06 else 0 end) techCharge,
SUM(case when reward_type in (40) then amount else 0 end) opencardBalance,
SUM(case when reward_type in (50,740) then amount else 0 end) rechargeBalance,
SUM(case when reward_type in (30,710,720) then amount else 0 end) upgradeBalance,
......@@ -715,7 +715,7 @@
SELECT
agent_id,
SUM(amount) balance,
SUM(case when agent_level=4 and reward_type in (50,740,60,760,300,750) then amount * 0.06 else 0 end) techCharge,
SUM(case when agent_level=4 and reward_type in (50,740,60,760,300,750) AND settle_state>=0 then amount * 0.06 else 0 end) techCharge,
SUM(case when reward_type in (40) then amount else 0 end) opencardBalance,
SUM(case when reward_type in (50,740) then amount else 0 end) rechargeBalance,
SUM(case when reward_type in (30,710,720) then amount else 0 end) upgradeBalance,
......
......@@ -714,7 +714,7 @@
SUM(CASE WHEN reward_type=60 THEN commission_acount * CASE WHEN user_is_super=1 THEN 0.97 WHEN user_partner_level=20 THEN 0.94 ELSE 1 END
ELSE 0 END) sum_redpack,
SUM(CASE WHEN reward_type NOT IN (60,110,120) THEN commission_acount ELSE 0 END) sum_others,
SUM(CASE WHEN reward_type IN (60, 110, 120) THEN commission_acount * CASE WHEN user_is_super=1 THEN 0.03 WHEN user_partner_level=20 THEN 0.06 ELSE 0 END
SUM(CASE WHEN reward_type IN (60, 110, 120) AND settle_state>0 THEN commission_acount * CASE WHEN user_is_super=1 THEN 0.03 WHEN user_partner_level=20 THEN 0.06 ELSE 0 END
ELSE 0 END) tech_charge,
0 wx_income,
0 wx_tax,
......@@ -736,7 +736,7 @@
SUM(CASE WHEN reward_type=60 THEN commission_acount * CASE WHEN user_is_super=1 THEN 0.97 WHEN user_partner_level=20 THEN 0.94 ELSE 1 END
ELSE 0 END) sum_redpack,
SUM(CASE WHEN reward_type NOT IN (60,110,120) THEN commission_acount ELSE 0 END) sum_others,
SUM(CASE WHEN reward_type IN (60, 110, 120) THEN commission_acount * CASE WHEN user_is_super=1 THEN 0.03 WHEN user_partner_level=20 THEN 0.06 ELSE 0 END
SUM(CASE WHEN reward_type IN (60, 110, 120) AND settle_state>=0 THEN commission_acount * CASE WHEN user_is_super=1 THEN 0.03 WHEN user_partner_level=20 THEN 0.06 ELSE 0 END
ELSE 0 END
) tech_charge,
0 wx_income,
......@@ -753,11 +753,29 @@
</select>
<update id="updateRewardStatusByUidAndTs">
UPDATE partner_reward
SET reward_status=120,settle_state=case when settle_state>0 then 300 else settle_state end
SET reward_status=120,settle_state=case when settle_state>=0 then 300 else settle_state end
WHERE recharge_time
BETWEEN FROM_UNIXTIME(#{beginTs}) AND FROM_UNIXTIME(#{endTs})
AND user_id = #{userId}
AND reward_status=100
AND reward_type != 130
</update>
<select id="getPartnerSummaryContentByUidAndTime" resultType="com.lanren.huhu.partner.model.PartnerSummaryContent">
SELECT
SUM(if(reward_type=60 AND is_show_on_client=1, commission_acount, 0)) AS cash,
COUNT(reward_type=60 OR NULL) AS num,
SUM(if(reward_type IN (70, 100) AND is_show_on_client=1,commission_acount, 0)) AS upCash,
COUNT(reward_type IN (70, 100)OR NULL) AS upNum,
SUM(if(reward_type=80 AND is_show_on_client=1, commission_acount, 0)) AS icash,
COUNT(reward_type=80 OR NULL) AS inum,
SUM(if(reward_type=90 AND is_show_on_client=1, commission_acount, 0)) AS pcash,
COUNT(reward_type=90 OR NULL) AS pnum,
SUM(if(reward_type IN(110, 120) AND is_show_on_client=1,commission_acount, 0)) AS scash,
COUNT(reward_type IN(110, 120) OR NULL) AS snum,
SUM(if(is_show_on_client=0, commission_acount, 0)) AS rcash
FROM partner_reward
WHERE recharge_time BETWEEN FROM_UNIXTIME(#{beginTs}) AND FROM_UNIXTIME(#{endTs})
AND reward_status=120
AND user_id=#{userId}
</select>
</mapper>
\ No newline at end of file
......@@ -38,21 +38,21 @@ WHERE a.recharge_time BETWEEN '2019-06-01 00:00:00' and '2019-06-30 23:59:59'
AND a.agent_level=0;
测试
select * from agent_salary where agent_id=29 and yeartime=2019 and monthtime=6;
select * from agent_account_log where agent_id=29;
select * from agent_reward where agent_id=29 and recharge_time BETWEEN '2019-06-01 00:00:00' and '2019-06-30 23:59:59';
select * from agent_income_summary where agent_id=29 and yeartime=2019 and monthtime=6;
select * from agent_salary where agent_id=1648 and yeartime=2019 and monthtime=6;
select * from agent_account_log where agent_id=1648;
select * from agent_reward where agent_id=1648 and recharge_time BETWEEN '2019-06-01 00:00:00' and '2019-06-30 23:59:59';
select * from agent_income_summary where agent_id=1648 and yeartime=2019 and monthtime=6;
delete from agent_salary where agent_id=29 and yeartime=2019 and monthtime=6;
delete from agent_account_log where agent_id=29;
update agent_reward set reward_status=100,settle_state=case when settle_state=300 then 200 else settle_state end where agent_id=29 and recharge_time BETWEEN '2019-06-01 00:00:00' and '2019-06-30 23:59:59' ;
delete from agent_income_summary where agent_id=29 and yeartime=2019 and monthtime=6;
delete from agent_salary where agent_id=1648 and yeartime=2019 and monthtime=6;
delete from agent_account_log where agent_id=1648;
update agent_reward set reward_status=100,settle_state=case when settle_state=300 then 200 else settle_state end where agent_id=1648 and recharge_time BETWEEN '2019-06-01 00:00:00' and '2019-06-30 23:59:59' ;
delete from agent_income_summary where agent_id=1648 and yeartime=2019 and monthtime=6;
select * from partner_account_log where user_id=89 order by id desc;
select * from partner_reward where user_id=89 and recharge_time BETWEEN '2019-06-01 00:00:00' and '2019-06-30 23:59:59';
select * from partner_income_summary where user_id=89 and yeartime=2019 and monthtime=6;
select * from partner_account_log where user_id=1648 order by id desc;
select * from partner_reward where user_id=1648 and recharge_time BETWEEN '2019-06-01 00:00:00' and '2019-06-30 23:59:59';
select * from partner_income_summary where user_id=1648 and yeartime=2019 and monthtime=6;
delete from partner_account_log where user_id=89 and yeartime=2019 and monthtime=6;
update partner_reward set reward_status=100,settle_state=case when settle_state=300 then 200 else settle_state end where user_id=89 and recharge_time BETWEEN '2019-06-01 00:00:00' and '2019-06-30 23:59:59' ;
delete from partner_income_summary where user_id=89 and yeartime=2019 and monthtime=6;
\ No newline at end of file
delete from partner_account_log where user_id=1648 and yeartime=2019 and monthtime=6;
update partner_reward set reward_status=100,settle_state=case when settle_state=300 then 200 else settle_state end where user_id=1648 and recharge_time BETWEEN '2019-06-01 00:00:00' and '2019-06-30 23:59:59' ;
delete from partner_income_summary where user_id=1648 and yeartime=2019 and monthtime=6;
\ 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