Commit 228eadd4 by guanchen

添加代理商结算

parent da2cdfa8
...@@ -123,6 +123,12 @@ public class Constants { ...@@ -123,6 +123,12 @@ public class Constants {
public static final int PARTNER_ACCOUNT_LOG_TYPE_TAX = 70; public static final int PARTNER_ACCOUNT_LOG_TYPE_TAX = 70;
public static final String PARTNER_ACCOUNT_LOG_TYPE_TAX_REMARK = "代扣个人所得税"; public static final String PARTNER_ACCOUNT_LOG_TYPE_TAX_REMARK = "代扣个人所得税";
/**
* 代理商奖励类型
*/
public static final int AGENT_REWARD_TYPE_PURCHASE = 300;
public static final int AGENT_REWARD_TYPE_SHARE = 60;
static { static {
/** /**
* 代理商平推奖励比例配置 * 代理商平推奖励比例配置
......
...@@ -66,4 +66,14 @@ public class AgentController { ...@@ -66,4 +66,14 @@ public class AgentController {
result.setData("异步,正在执行刷新......"); result.setData("异步,正在执行刷新......");
return result; return result;
} }
/**
* 测试使用 结算单个代理商
*/
@RequestMapping(value = "/finance", method = RequestMethod.POST)
public Result<String> doFinanceSettle(@RequestBody @Valid Agent agent, @RequestHeader HttpHeaders headers) {
if (logger.isInfoEnabled()) {
logger.info("doFinanceSettle userId:{},header:{},time:{}", agent.getAgentId(), headers.keySet().toArray(), LocalDateTime.now());
}
return agentManager.doFinanceSettle(agent.getAgentId());
}
} }
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 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; @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<PartnerResponse> 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()); }} 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 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; @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()); }}
\ No newline at end of file \ No newline at end of file
......
package com.lanren.huhu.partner.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.lanren.huhu.partner.domain.AgentAccount;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface AgentAccountMapper extends BaseMapper<AgentAccount> {
int updateBatch(List<AgentAccount> list);
int batchInsert(@Param("list") List<AgentAccount> list);
int insertOrUpdate(AgentAccount record);
int insertOrUpdateSelective(AgentAccount record);
AgentAccount getOneByUserIdForUpdate(Integer agentId);
}
\ No newline at end of file
...@@ -2,10 +2,11 @@ package com.lanren.huhu.partner.dao; ...@@ -2,10 +2,11 @@ package com.lanren.huhu.partner.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.lanren.huhu.partner.domain.AgentIncomeSummary; import com.lanren.huhu.partner.domain.AgentIncomeSummary;
import java.util.List;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper @Mapper
public interface AgentIncomeSummaryMapper extends BaseMapper<AgentIncomeSummary> { public interface AgentIncomeSummaryMapper extends BaseMapper<AgentIncomeSummary> {
int updateBatch(List<AgentIncomeSummary> list); int updateBatch(List<AgentIncomeSummary> list);
......
package com.lanren.huhu.partner.dao; package com.lanren.huhu.partner.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; 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.AgentReward; import com.lanren.huhu.partner.domain.AgentReward;
import java.util.List; import com.lanren.huhu.partner.model.AgentSettle;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper @Mapper
public interface AgentRewardMapper extends BaseMapper<AgentReward> { public interface AgentRewardMapper extends BaseMapper<AgentReward> {
int updateBatch(List<AgentReward> list); int updateBatch(List<AgentReward> list);
...@@ -15,4 +19,14 @@ public interface AgentRewardMapper extends BaseMapper<AgentReward> { ...@@ -15,4 +19,14 @@ public interface AgentRewardMapper extends BaseMapper<AgentReward> {
int insertOrUpdate(AgentReward record); int insertOrUpdate(AgentReward record);
int insertOrUpdateSelective(AgentReward record); int insertOrUpdateSelective(AgentReward record);
IPage<AgentSettle> selectAgentSettlePageByTs(Page<AgentSettle> page, long beginTs, long endTs);
AgentSettle selectAgentSettleByTsAndAgentId(long beginTs, long endTs, Integer agentId);
IPage<AgentReward> selectOrderRewardPageByTs(Page<AgentReward> page, long beginTs, long endTs);
IPage<AgentReward> selectOrderRewardPageByTsAndAgentId(Page<AgentReward> page, long beginTs, long endTs, int agentId);
int updateRewardStatusByAgentIdAndTs(int agentId, long beginTs, long endTs);
} }
\ 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 java.math.BigDecimal;
import java.time.LocalDateTime;
import lombok.Data;
@Data
@TableName(value = "agent_account")
public class AgentAccount implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 关联用户id
*/
@TableField(value = "user_id")
private Integer userId;
/**
* 代理商id
*/
@TableField(value = "agent_id")
private Integer agentId;
/**
* 账户类型 10开头现金账户 其他带添加
*/
@TableField(value = "account_type")
private Integer accountType;
/**
* 账户总额
*/
@TableField(value = "balance")
private BigDecimal balance;
/**
* 冻结余额
*/
@TableField(value = "frozen_balance")
private BigDecimal frozenBalance;
/**
* 收入冻结
*/
@TableField(value = "income_freeze")
private BigDecimal incomeFreeze;
/**
* 出款冻结
*/
@TableField(value = "pay_freeze")
private BigDecimal payFreeze;
/**
* 可用余额
*/
@TableField(value = "free_balance")
private BigDecimal freeBalance;
/**
* 账户收入总额
*/
@TableField(value = "income_balance")
private BigDecimal incomeBalance;
/**
* 在线充值收入
*/
@TableField(value = "recharge_income")
private BigDecimal rechargeIncome;
/**
* 账户开卡收入
*/
@TableField(value = "opencard_income")
private BigDecimal opencardIncome;
@TableField(value = "created_at")
private Long createdAt;
@TableField(value = "updated_at")
private Long updatedAt;
@TableField(value = "deleted_at")
private Long deletedAt;
/**
* 提现总额
*/
@TableField(value = "withdraw_balance")
private BigDecimal withdrawBalance;
/**
* 消费总额
*/
@TableField(value = "consume_balance")
private BigDecimal consumeBalance;
/**
* 版本号
*/
@TableField(value = "account_version")
private Long accountVersion;
/**
* 状态 100默认正常 99禁用
*/
@TableField(value = "account_status")
private Integer accountStatus;
/**
* 创建时间戳
*/
@TableField(value = "create_time")
private LocalDateTime createTime;
private static final long serialVersionUID = 1L;
public static final String COL_USER_ID = "user_id";
public static final String COL_AGENT_ID = "agent_id";
public static final String COL_ACCOUNT_TYPE = "account_type";
public static final String COL_BALANCE = "balance";
public static final String COL_FROZEN_BALANCE = "frozen_balance";
public static final String COL_INCOME_FREEZE = "income_freeze";
public static final String COL_PAY_FREEZE = "pay_freeze";
public static final String COL_FREE_BALANCE = "free_balance";
public static final String COL_INCOME_BALANCE = "income_balance";
public static final String COL_RECHARGE_INCOME = "recharge_income";
public static final String COL_OPENCARD_INCOME = "opencard_income";
public static final String COL_CREATED_AT = "created_at";
public static final String COL_UPDATED_AT = "updated_at";
public static final String COL_DELETED_AT = "deleted_at";
public static final String COL_WITHDRAW_BALANCE = "withdraw_balance";
public static final String COL_CONSUME_BALANCE = "consume_balance";
public static final String COL_ACCOUNT_VERSION = "account_version";
public static final String COL_ACCOUNT_STATUS = "account_status";
public static final String COL_CREATE_TIME = "create_time";
}
\ No newline at end of file
...@@ -12,7 +12,7 @@ import lombok.Data; ...@@ -12,7 +12,7 @@ import lombok.Data;
@Data @Data
@TableName(value = "agent_account_log") @TableName(value = "agent_account_log")
public class AgentAccountLog implements Serializable { public class AgentAccountLog implements Serializable {
@TableId(value = "id", type = IdType.AUTO) @TableId(value = "id", type = IdType.AUTO)
private Long id; private Long id;
/** /**
...@@ -88,7 +88,7 @@ public class AgentAccountLog implements Serializable { ...@@ -88,7 +88,7 @@ public class AgentAccountLog implements Serializable {
private Boolean payType; private Boolean payType;
/** /**
* 类型描述 与pay_type 对应 * 类型描述 与pay_type 对应
*/ */
@TableField(value = "pay_remark") @TableField(value = "pay_remark")
private String payRemark; private String payRemark;
...@@ -111,6 +111,12 @@ public class AgentAccountLog implements Serializable { ...@@ -111,6 +111,12 @@ public class AgentAccountLog implements Serializable {
@TableField(value = "modify_time") @TableField(value = "modify_time")
private LocalDateTime modifyTime; private LocalDateTime modifyTime;
/**
* 变更前的快照
*/
@TableField(value = "snapshot")
private String snapshot;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
public static final String COL_USER_ID = "user_id"; public static final String COL_USER_ID = "user_id";
...@@ -146,4 +152,6 @@ public class AgentAccountLog implements Serializable { ...@@ -146,4 +152,6 @@ public class AgentAccountLog implements Serializable {
public static final String COL_CREATE_TIME = "create_time"; public static final String COL_CREATE_TIME = "create_time";
public static final String COL_MODIFY_TIME = "modify_time"; public static final String COL_MODIFY_TIME = "modify_time";
public static final String COL_SNAPSHOT = "snapshot";
} }
\ No newline at end of file
...@@ -9,6 +9,7 @@ import lombok.Data; ...@@ -9,6 +9,7 @@ import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Date;
@Data @Data
@TableName(value = "agent_reward") @TableName(value = "agent_reward")
...@@ -89,7 +90,7 @@ public class AgentReward implements Serializable { ...@@ -89,7 +90,7 @@ public class AgentReward implements Serializable {
* 用户充值时间 * 用户充值时间
*/ */
@TableField(value = "recharge_time") @TableField(value = "recharge_time")
private LocalDateTime rechargeTime; private Date rechargeTime;
/** /**
* 可分红总额 * 可分红总额
......
...@@ -6,6 +6,7 @@ import com.lanren.huhu.partner.model.AgentResponse; ...@@ -6,6 +6,7 @@ import com.lanren.huhu.partner.model.AgentResponse;
import com.lanren.huhu.partner.model.AgentRewardMessage; import com.lanren.huhu.partner.model.AgentRewardMessage;
import com.lanren.huhu.partner.model.ParentAgent; import com.lanren.huhu.partner.model.ParentAgent;
import com.lanren.huhu.partner.result.Result; import com.lanren.huhu.partner.result.Result;
import com.lanren.huhu.partner.schedule.AgentSettleTask;
import com.lanren.huhu.partner.service.UserAgentService; import com.lanren.huhu.partner.service.UserAgentService;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -31,6 +32,8 @@ public class AgentManager { ...@@ -31,6 +32,8 @@ public class AgentManager {
UserAgentService userAgentService; UserAgentService userAgentService;
@Autowired @Autowired
StringRedisTemplate redisTemplate; StringRedisTemplate redisTemplate;
@Autowired
AgentSettleTask agentSettleTask;
/*** /***
* * 获取代理商等级 1 总代, 2 大区, 3 省, 4 市 * * 获取代理商等级 1 总代, 2 大区, 3 省, 4 市
...@@ -98,4 +101,14 @@ public class AgentManager { ...@@ -98,4 +101,14 @@ public class AgentManager {
result.setData(parentAgents); result.setData(parentAgents);
return result; return result;
} }
public Result<String> doFinanceSettle(int agentId) {
Result<String> result = new Result<String>();
if (agentSettleTask.doOneAgentSettle(agentId)) {
result.setCode(200);
} else {
result.setCode(500);
}
return result;
}
} }
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<PartnerResponse> doFinanceSettle(int userId) { Result<PartnerResponse> result = new Result<>(); if (partnerSettleTask.doOneUserSettle(userId)) { result.setCode(200); } else { result.setCode(500); } return result; }} 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(200); } else { result.setCode(500); } return result; }}
\ No newline at end of file \ No newline at end of file
......
package com.lanren.huhu.partner.model;
import com.lanren.huhu.partner.model.base.BaseModel;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author chen
* @title: AgentSettle
* @projectName partner
* @package com.lanren.huhu.partner.model
* @date 2019-07-23 10:35
*/
@Data
public class AgentSettle extends BaseModel {
private int userId;
private int agentId;
private int agentLevel;
private BigDecimal balance;
private BigDecimal techCharge;
private BigDecimal opencardBalance;
private BigDecimal rechargeBalance;
private BigDecimal upgradeBalance;
private BigDecimal upgradeSuperBalance;
private BigDecimal shareBalance;
private BigDecimal zigoushengBalance;
private BigDecimal pingtuiBalance;
}
package com.lanren.huhu.partner.model;
import com.lanren.huhu.partner.model.base.BaseModel;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author chen
* @title: AgentSnapshot
* @projectName partner
* @package com.lanren.huhu.partner.model
* @date 2019-07-23 17:48
*/
@Data
public class AgentSnapshot extends BaseModel {
private int agentId;
private BigDecimal balance;
}
...@@ -12,6 +12,7 @@ import com.lanren.huhu.partner.service.AgentRewardService; ...@@ -12,6 +12,7 @@ import com.lanren.huhu.partner.service.AgentRewardService;
import com.lanren.huhu.partner.service.PartnerAccountService; import com.lanren.huhu.partner.service.PartnerAccountService;
import com.lanren.huhu.partner.service.UserAgentService; import com.lanren.huhu.partner.service.UserAgentService;
import com.lanren.huhu.partner.service.UserService; import com.lanren.huhu.partner.service.UserService;
import com.lanren.huhu.partner.util.DateUtils;
import com.lanren.huhu.partner.util.LockUtil; import com.lanren.huhu.partner.util.LockUtil;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -28,8 +29,6 @@ import org.springframework.transaction.TransactionStatus; ...@@ -28,8 +29,6 @@ import org.springframework.transaction.TransactionStatus;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -228,7 +227,7 @@ public class AgentRewardQueueTask { ...@@ -228,7 +227,7 @@ public class AgentRewardQueueTask {
int sourceUserLevel = partnerAccountService.getOneByUserId(message.getSourceUserId()).getPartnerLevel(); int sourceUserLevel = partnerAccountService.getOneByUserId(message.getSourceUserId()).getPartnerLevel();
AgentReward agentReward = new AgentReward(); AgentReward agentReward = new AgentReward();
agentReward.setRewardType(message.getRewardType()); agentReward.setRewardType(message.getRewardType());
agentReward.setRechargeTime(LocalDateTime.parse(message.getRechargeTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); agentReward.setRechargeTime(DateUtils.parse(message.getRechargeTime(), DateUtils.FORMAT_SHORT));
agentReward.setSourceUserId(message.getSourceUserId()); agentReward.setSourceUserId(message.getSourceUserId());
agentReward.setReferenceId(Long.parseLong(message.getReferenceId())); agentReward.setReferenceId(Long.parseLong(message.getReferenceId()));
agentReward.setAgentId(agent.getAgentId()); agentReward.setAgentId(agent.getAgentId());
......
...@@ -80,10 +80,7 @@ public class PartnerSettleTask { ...@@ -80,10 +80,7 @@ public class PartnerSettleTask {
PartnerSettle errPartnerSettle = null; PartnerSettle errPartnerSettle = null;
try { try {
updateOrderCommission(beginTs, endTs, 1, userId); updateOrderCommission(beginTs, endTs, 1, userId);
if (partnerRewardService == null) { PartnerSettle partnerSettle = partnerRewardService.selectPartnerSettleByTsAndUid(beginTs, endTs, userId);
logger.info("partnerRewardService is nuull");
}
PartnerSettle partnerSettle = partnerRewardService.selectPartnerSettlePageByTsAndUid(beginTs, endTs, userId);
errPartnerSettle = partnerSettle; errPartnerSettle = partnerSettle;
if (setIncomeAndTax(partnerSettle)) { if (setIncomeAndTax(partnerSettle)) {
return doDbUpdate(partnerSettle, beginTs, endTs); return doDbUpdate(partnerSettle, beginTs, endTs);
...@@ -185,8 +182,8 @@ public class PartnerSettleTask { ...@@ -185,8 +182,8 @@ public class PartnerSettleTask {
} }
} }
private void updatePartnerRewardStatus(int userId, long beginTs, long endTs) { private int updatePartnerRewardStatus(int userId, long beginTs, long endTs) {
partnerRewardService.updateRewardStatusByUidAndTs(userId, beginTs, endTs); return partnerRewardService.updateRewardStatusByUidAndTs(userId, beginTs, endTs);
} }
private void updatePartnerAccount(PartnerSettle partnerSettle, PartnerAccount partnerAccount) { private void updatePartnerAccount(PartnerSettle partnerSettle, PartnerAccount partnerAccount) {
...@@ -275,8 +272,8 @@ public class PartnerSettleTask { ...@@ -275,8 +272,8 @@ public class PartnerSettleTask {
BigDecimal ratio = new BigDecimal(s); BigDecimal ratio = new BigDecimal(s);
cash = cash.multiply(ratio); cash = cash.multiply(ratio);
} }
BigDecimal commission = cash.multiply(partnerReward.getCommissionRate());
partnerReward.setCash(cash); partnerReward.setCash(cash);
BigDecimal commission = cash.multiply(partnerReward.getCommissionRate());
partnerReward.setCommissionAcount(commission); partnerReward.setCommissionAcount(commission);
partnerReward.setSettleState(Constants.SETTLE_STATE_DONE); partnerReward.setSettleState(Constants.SETTLE_STATE_DONE);
partnerRewardService.updateById(partnerReward); partnerRewardService.updateById(partnerReward);
......
package com.lanren.huhu.partner.service; package com.lanren.huhu.partner.service;
import java.util.List;
import com.lanren.huhu.partner.domain.AgentAccountLog;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
/** import com.lanren.huhu.partner.domain.AgentAccountLog;
* @title: ${NAME}
* @projectName partner import java.util.List;
* @description: TODO
* @author chen /**
* @package ${PACKAGE_NAME} * @author chen
* @date 2019-07-16 15:38 * @title: ${NAME}
*/ * @projectName partner
public interface AgentAccountLogService extends IService<AgentAccountLog>{ * @package ${PACKAGE_NAME}
* @date 2019-07-16 15:38
*/
public interface AgentAccountLogService extends IService<AgentAccountLog> {
int updateBatch(List<AgentAccountLog> list); int updateBatch(List<AgentAccountLog> list);
...@@ -23,3 +24,4 @@ public interface AgentAccountLogService extends IService<AgentAccountLog>{ ...@@ -23,3 +24,4 @@ public interface AgentAccountLogService extends IService<AgentAccountLog>{
int insertOrUpdateSelective(AgentAccountLog record); int insertOrUpdateSelective(AgentAccountLog record);
} }
package com.lanren.huhu.partner.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lanren.huhu.partner.domain.AgentAccount;
import java.util.List;
/**
* @title: ${NAME}
* @projectName partner
* @author chen
* @package ${PACKAGE_NAME}
* @date 2019-07-23 16:55
*/
public interface AgentAccountService extends IService<AgentAccount>{
int updateBatch(List<AgentAccount> list);
int batchInsert(List<AgentAccount> list);
int insertOrUpdate(AgentAccount record);
int insertOrUpdateSelective(AgentAccount record);
AgentAccount getOneByUserIdForUpdate(Integer agentId);
}
package com.lanren.huhu.partner.service; package com.lanren.huhu.partner.service;
import java.util.List;
import com.lanren.huhu.partner.domain.AgentIncomeSummary;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.lanren.huhu.partner.domain.AgentIncomeSummary;
import java.util.List;
/** /**
* @title: ${NAME} * @title: ${NAME}
* @projectName partner * @projectName partner
...@@ -22,4 +23,5 @@ public interface AgentIncomeSummaryService extends IService<AgentIncomeSummary>{ ...@@ -22,4 +23,5 @@ public interface AgentIncomeSummaryService extends IService<AgentIncomeSummary>{
int insertOrUpdateSelective(AgentIncomeSummary record); int insertOrUpdateSelective(AgentIncomeSummary record);
AgentIncomeSummary getOneByAgentidYearMonth(int agentId, int yeartime, int monthtime);
} }
package com.lanren.huhu.partner.service; 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.baomidou.mybatisplus.extension.service.IService;
import com.lanren.huhu.partner.domain.AgentReward; import com.lanren.huhu.partner.domain.AgentReward;
import com.lanren.huhu.partner.model.AgentSettle;
import java.util.List; import java.util.List;
...@@ -29,6 +32,16 @@ public interface AgentRewardService extends IService<AgentReward> { ...@@ -29,6 +32,16 @@ public interface AgentRewardService extends IService<AgentReward> {
AgentReward getOneBySubOrderSn(String orderType, String orderSn, String subOrderSn); AgentReward getOneBySubOrderSn(String orderType, String orderSn, String subOrderSn);
int insertOne(AgentReward record); int insertOne(AgentReward record);
AgentSettle selectAgentSettleByTsAndAgentId(long beginTs, long endTs, Integer agentId);
IPage<AgentReward> selectOrderRewardPageByTs(Page<AgentReward> page, long beginTs, long endTs);
IPage<AgentReward> selectOrderRewardPageByTsAndAgentId(Page<AgentReward> page, long beginTs, long endTs, int agentId);
int updateRewardStatusByUidAndTs(int agentId, long beginTs, long endTs);
IPage<AgentSettle> selectAgentSettlePageByTs(Page<AgentSettle> page, long beginTs, long endTs);
} }
......
...@@ -41,7 +41,7 @@ public interface PartnerRewardService extends IService<PartnerReward> { ...@@ -41,7 +41,7 @@ public interface PartnerRewardService extends IService<PartnerReward> {
/** /**
* 获取单个合伙人的汇总收入 * 获取单个合伙人的汇总收入
*/ */
PartnerSettle selectPartnerSettlePageByTsAndUid(Long beginTs, Long endTs, Integer userId); PartnerSettle selectPartnerSettleByTsAndUid(Long beginTs, Long endTs, Integer userId);
/** /**
* 更新奖励状态 * 更新奖励状态
*/ */
......
package com.lanren.huhu.partner.service.impl; package com.lanren.huhu.partner.service.impl;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.List;
import com.lanren.huhu.partner.domain.AgentAccountLog;
import com.lanren.huhu.partner.dao.AgentAccountLogMapper; import com.lanren.huhu.partner.dao.AgentAccountLogMapper;
import com.lanren.huhu.partner.domain.AgentAccountLog;
import com.lanren.huhu.partner.service.AgentAccountLogService; import com.lanren.huhu.partner.service.AgentAccountLogService;
/** import org.springframework.stereotype.Service;
* @title: ${NAME}
* @projectName partner import java.util.List;
* @description: TODO
* @author chen /**
* @package ${PACKAGE_NAME} * @author chen
* @date 2019-07-16 15:38 * @title: ${NAME}
*/ * @projectName partner
* @package ${PACKAGE_NAME}
* @date 2019-07-16 15:38
*/
@Service @Service
public class AgentAccountLogServiceImpl extends ServiceImpl<AgentAccountLogMapper, AgentAccountLog> implements AgentAccountLogService{ public class AgentAccountLogServiceImpl extends ServiceImpl<AgentAccountLogMapper, AgentAccountLog> implements AgentAccountLogService {
@Override @Override
public int updateBatch(List<AgentAccountLog> list) { public int updateBatch(List<AgentAccountLog> list) {
return baseMapper.updateBatch(list); return baseMapper.updateBatch(list);
} }
@Override @Override
public int batchInsert(List<AgentAccountLog> list) { public int batchInsert(List<AgentAccountLog> list) {
return baseMapper.batchInsert(list); return baseMapper.batchInsert(list);
} }
@Override @Override
public int insertOrUpdate(AgentAccountLog record) { public int insertOrUpdate(AgentAccountLog record) {
return baseMapper.insertOrUpdate(record); return baseMapper.insertOrUpdate(record);
} }
@Override @Override
public int insertOrUpdateSelective(AgentAccountLog record) { public int insertOrUpdateSelective(AgentAccountLog record) {
return baseMapper.insertOrUpdateSelective(record); return baseMapper.insertOrUpdateSelective(record);
} }
} }
package com.lanren.huhu.partner.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lanren.huhu.partner.dao.AgentAccountMapper;
import com.lanren.huhu.partner.domain.AgentAccount;
import com.lanren.huhu.partner.service.AgentAccountService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @title: ${NAME}
* @projectName partner
* @author chen
* @package ${PACKAGE_NAME}
* @date 2019-07-23 16:55
*/
@Service
public class AgentAccountServiceImpl extends ServiceImpl<AgentAccountMapper, AgentAccount> implements AgentAccountService{
@Override
public int updateBatch(List<AgentAccount> list) {
return baseMapper.updateBatch(list);
}
@Override
public int batchInsert(List<AgentAccount> list) {
return baseMapper.batchInsert(list);
}
@Override
public int insertOrUpdate(AgentAccount record) {
return baseMapper.insertOrUpdate(record);
}
@Override
public int insertOrUpdateSelective(AgentAccount record) {
return baseMapper.insertOrUpdateSelective(record);
}
@Override
public AgentAccount getOneByUserIdForUpdate(Integer agentId) {
return baseMapper.getOneByUserIdForUpdate(agentId);
}
}
package com.lanren.huhu.partner.service.impl; package com.lanren.huhu.partner.service.impl;
import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import javax.annotation.Resource;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.List;
import com.lanren.huhu.partner.dao.AgentIncomeSummaryMapper; import com.lanren.huhu.partner.dao.AgentIncomeSummaryMapper;
import com.lanren.huhu.partner.domain.AgentIncomeSummary; import com.lanren.huhu.partner.domain.AgentIncomeSummary;
import com.lanren.huhu.partner.service.AgentIncomeSummaryService; import com.lanren.huhu.partner.service.AgentIncomeSummaryService;
import org.springframework.stereotype.Service;
import java.util.List;
/** /**
* @title: ${NAME} * @title: ${NAME}
* @projectName partner * @projectName partner
...@@ -35,4 +35,11 @@ public class AgentIncomeSummaryServiceImpl extends ServiceImpl<AgentIncomeSummar ...@@ -35,4 +35,11 @@ public class AgentIncomeSummaryServiceImpl extends ServiceImpl<AgentIncomeSummar
public int insertOrUpdateSelective(AgentIncomeSummary record) { public int insertOrUpdateSelective(AgentIncomeSummary record) {
return baseMapper.insertOrUpdateSelective(record); return baseMapper.insertOrUpdateSelective(record);
} }
@Override
public AgentIncomeSummary getOneByAgentidYearMonth(int agentId, int yeartime, int monthtime) {
QueryWrapper<AgentIncomeSummary> wrapper = new QueryWrapper<AgentIncomeSummary>();
wrapper.eq("agent_id", agentId).eq("yeartime", yeartime).eq("monthtime", monthtime);
return baseMapper.selectOne(wrapper);
}
} }
package com.lanren.huhu.partner.service.impl; package com.lanren.huhu.partner.service.impl;
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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lanren.huhu.partner.dao.AgentRewardMapper; import com.lanren.huhu.partner.dao.AgentRewardMapper;
import com.lanren.huhu.partner.domain.AgentReward; import com.lanren.huhu.partner.domain.AgentReward;
import com.lanren.huhu.partner.model.AgentSettle;
import com.lanren.huhu.partner.service.AgentRewardService; import com.lanren.huhu.partner.service.AgentRewardService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -56,6 +59,31 @@ public class AgentRewardServiceImpl extends ServiceImpl<AgentRewardMapper, Agent ...@@ -56,6 +59,31 @@ public class AgentRewardServiceImpl extends ServiceImpl<AgentRewardMapper, Agent
list.add(record); list.add(record);
return batchInsert(list); return batchInsert(list);
} }
@Override
public AgentSettle selectAgentSettleByTsAndAgentId(long beginTs, long endTs, Integer agentId) {
return baseMapper.selectAgentSettleByTsAndAgentId(beginTs, endTs, agentId);
}
@Override
public IPage<AgentReward> selectOrderRewardPageByTs(Page<AgentReward> page, long beginTs, long endTs) {
return baseMapper.selectOrderRewardPageByTs(page, beginTs, endTs);
}
@Override
public IPage<AgentReward> selectOrderRewardPageByTsAndAgentId(Page<AgentReward> page, long beginTs, long endTs, int agentId) {
return baseMapper.selectOrderRewardPageByTsAndAgentId(page, beginTs, endTs, agentId);
}
@Override
public int updateRewardStatusByUidAndTs(int agentId, long beginTs, long endTs) {
return baseMapper.updateRewardStatusByAgentIdAndTs(agentId, beginTs, endTs);
}
@Override
public IPage<AgentSettle> selectAgentSettlePageByTs(Page<AgentSettle> page, long beginTs, long endTs) {
return baseMapper.selectAgentSettlePageByTs(page, beginTs, endTs);
}
} }
......
...@@ -58,7 +58,7 @@ public class PartnerRewardServiceImpl extends ServiceImpl<PartnerRewardMapper, P ...@@ -58,7 +58,7 @@ public class PartnerRewardServiceImpl extends ServiceImpl<PartnerRewardMapper, P
} }
@Override @Override
public PartnerSettle selectPartnerSettlePageByTsAndUid(Long beginTs, Long endTs, Integer userId) { public PartnerSettle selectPartnerSettleByTsAndUid(Long beginTs, Long endTs, Integer userId) {
return baseMapper.selectPartnerSettleByTsAndUid(beginTs, endTs, userId); return baseMapper.selectPartnerSettleByTsAndUid(beginTs, endTs, userId);
} }
......
...@@ -21,12 +21,13 @@ ...@@ -21,12 +21,13 @@
<result column="reference_id" property="referenceId" /> <result column="reference_id" property="referenceId" />
<result column="create_time" property="createTime" /> <result column="create_time" property="createTime" />
<result column="modify_time" property="modifyTime" /> <result column="modify_time" property="modifyTime" />
<result column="snapshot" property="snapshot" />
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
<!--@mbg.generated--> <!--@mbg.generated-->
id, user_id, agent_id, yeartime, monthtime, daytime, `type`, change_num, changed_amount, id, user_id, agent_id, yeartime, monthtime, daytime, `type`, change_num, changed_amount,
change_time, pay_state, pay_platform, pay_type, pay_remark, pay_info, reference_id, change_time, pay_state, pay_platform, pay_type, pay_remark, pay_info, reference_id,
create_time, modify_time create_time, modify_time, snapshot
</sql> </sql>
<update id="updateBatch" parameterType="java.util.List"> <update id="updateBatch" parameterType="java.util.List">
<!--@mbg.generated--> <!--@mbg.generated-->
...@@ -117,6 +118,11 @@ ...@@ -117,6 +118,11 @@
when id = #{item.id} then #{item.modifyTime} when id = #{item.id} then #{item.modifyTime}
</foreach> </foreach>
</trim> </trim>
<trim prefix="snapshot = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when id = #{item.id} then #{item.snapshot}
</foreach>
</trim>
</trim> </trim>
where id in where id in
<foreach close=")" collection="list" item="item" open="(" separator=", "> <foreach close=")" collection="list" item="item" open="(" separator=", ">
...@@ -128,13 +134,13 @@ ...@@ -128,13 +134,13 @@
insert into agent_account_log insert into agent_account_log
(user_id, agent_id, yeartime, monthtime, daytime, `type`, change_num, changed_amount, (user_id, agent_id, yeartime, monthtime, daytime, `type`, change_num, changed_amount,
change_time, pay_state, pay_platform, pay_type, pay_remark, pay_info, reference_id, change_time, pay_state, pay_platform, pay_type, pay_remark, pay_info, reference_id,
create_time, modify_time) create_time, modify_time, snapshot)
values values
<foreach collection="list" item="item" separator=","> <foreach collection="list" item="item" separator=",">
(#{item.userId}, #{item.agentId}, #{item.yeartime}, #{item.monthtime}, #{item.daytime}, (#{item.userId}, #{item.agentId}, #{item.yeartime}, #{item.monthtime}, #{item.daytime},
#{item.type}, #{item.changeNum}, #{item.changedAmount}, #{item.changeTime}, #{item.payState}, #{item.type}, #{item.changeNum}, #{item.changedAmount}, #{item.changeTime}, #{item.payState},
#{item.payPlatform}, #{item.payType}, #{item.payRemark}, #{item.payInfo}, #{item.referenceId}, #{item.payPlatform}, #{item.payType}, #{item.payRemark}, #{item.payInfo}, #{item.referenceId},
#{item.createTime}, #{item.modifyTime}) #{item.createTime}, #{item.modifyTime}, #{item.snapshot})
</foreach> </foreach>
</insert> </insert>
<insert id="insertOrUpdate" keyColumn="id" keyProperty="id" parameterType="com.lanren.huhu.partner.domain.AgentAccountLog" useGeneratedKeys="true"> <insert id="insertOrUpdate" keyColumn="id" keyProperty="id" parameterType="com.lanren.huhu.partner.domain.AgentAccountLog" useGeneratedKeys="true">
...@@ -161,6 +167,7 @@ ...@@ -161,6 +167,7 @@
reference_id, reference_id,
create_time, create_time,
modify_time, modify_time,
snapshot,
</trim> </trim>
values values
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
...@@ -184,6 +191,7 @@ ...@@ -184,6 +191,7 @@
#{referenceId}, #{referenceId},
#{createTime}, #{createTime},
#{modifyTime}, #{modifyTime},
#{snapshot},
</trim> </trim>
on duplicate key update on duplicate key update
<trim suffixOverrides=","> <trim suffixOverrides=",">
...@@ -207,6 +215,7 @@ ...@@ -207,6 +215,7 @@
reference_id = #{referenceId}, reference_id = #{referenceId},
create_time = #{createTime}, create_time = #{createTime},
modify_time = #{modifyTime}, modify_time = #{modifyTime},
snapshot = #{snapshot},
</trim> </trim>
</insert> </insert>
<insert id="insertOrUpdateSelective" keyColumn="id" keyProperty="id" parameterType="com.lanren.huhu.partner.domain.AgentAccountLog" useGeneratedKeys="true"> <insert id="insertOrUpdateSelective" keyColumn="id" keyProperty="id" parameterType="com.lanren.huhu.partner.domain.AgentAccountLog" useGeneratedKeys="true">
...@@ -267,6 +276,9 @@ ...@@ -267,6 +276,9 @@
<if test="modifyTime != null"> <if test="modifyTime != null">
modify_time, modify_time,
</if> </if>
<if test="snapshot != null">
snapshot,
</if>
</trim> </trim>
values values
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
...@@ -324,6 +336,9 @@ ...@@ -324,6 +336,9 @@
<if test="modifyTime != null"> <if test="modifyTime != null">
#{modifyTime}, #{modifyTime},
</if> </if>
<if test="snapshot != null">
#{snapshot},
</if>
</trim> </trim>
on duplicate key update on duplicate key update
<trim suffixOverrides=","> <trim suffixOverrides=",">
...@@ -381,6 +396,9 @@ ...@@ -381,6 +396,9 @@
<if test="modifyTime != null"> <if test="modifyTime != null">
modify_time = #{modifyTime}, modify_time = #{modifyTime},
</if> </if>
<if test="snapshot != null">
snapshot = #{snapshot},
</if>
</trim> </trim>
</insert> </insert>
</mapper> </mapper>
\ No newline at end of file
...@@ -661,4 +661,102 @@ ...@@ -661,4 +661,102 @@
</if> </if>
</trim> </trim>
</insert> </insert>
<select id="selectAgentSettlePageByTs" resultType="com.lanren.huhu.partner.model.AgentSettle">
SELECT
b.user_id,
a.agent_id,
b.agent_level,
a.balance,
a.techCharge,
a.opencardBalance,
a.rechargeBalance,
a.upgradeBalance,
a.upgradeSuperBalance,
a.shareBalance,
a.zigoushengBalance,
a.pingtuiBalance
FROM (
SELECT
agent_id,
SUM(amount) balance,
SUM(case when agent_level=4 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,
SUM(case when reward_type in (20,730) then amount else 0 end) upgradeSuperBalance,
SUM(case when reward_type in (60,760) then amount else 0 end) shareBalance,
SUM(case when reward_type in (300,750) then amount else 0 end) zigoushengBalance,
SUM(0) pingtuiBalance
FROM agent_reward
WHERE recharge_time
BETWEEN FROM_UNIXTIME(#{beginTs}) AND FROM_UNIXTIME(#{endTs})
AND reward_status=100
GROUP BY 1
ORDER BY 1
) a
JOIN user_agent b ON a.agent_id=b.agent_id
ORDER BY 1,2,3
</select>
<select id="selectAgentSettleByTsAndAgentId" resultType="com.lanren.huhu.partner.model.AgentSettle">
SELECT
b.user_id,
a.agent_id,
b.agent_level,
a.balance,
a.techCharge,
a.opencardBalance,
a.rechargeBalance,
a.upgradeBalance,
a.upgradeSuperBalance,
a.shareBalance,
a.zigoushengBalance,
a.pingtuiBalance
FROM (
SELECT
agent_id,
SUM(amount) balance,
SUM(case when agent_level=4 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,
SUM(case when reward_type in (20,730) then amount else 0 end) upgradeSuperBalance,
SUM(case when reward_type in (60,760) then amount else 0 end) shareBalance,
SUM(case when reward_type in (300,750) then amount else 0 end) zigoushengBalance,
SUM(0) pingtuiBalance
FROM agent_reward
WHERE recharge_time
BETWEEN FROM_UNIXTIME(#{beginTs}) AND FROM_UNIXTIME(#{endTs})
AND reward_status = 100
AND agent_id = #{agentId}
GROUP BY 1
ORDER BY 1
) a
JOIN user_agent b ON a.agent_id = b.agent_id
ORDER BY 1,2,3
</select>
<select id="selectOrderRewardPageByTs" resultMap="BaseResultMap">
SELECT *
FROM agent_reward
WHERE recharge_time BETWEEN FROM_UNIXTIME(#{beginTs}) AND FROM_UNIXTIME(#{endTs})
AND reward_status = 100
AND reward_type in (60,760,300,750)
ORDER BY id
</select>
<select id="selectOrderRewardPageByTsAndAgentId" resultMap="BaseResultMap">
SELECT *
FROM agent_reward
WHERE recharge_time BETWEEN FROM_UNIXTIME(#{beginTs}) AND FROM_UNIXTIME(#{endTs})
AND reward_status = 100
AND agent_id = #{agentId}
AND reward_type in (60,760,300,750)
ORDER BY id
</select>
<update id="updateRewardStatusByAgentIdAndTs">
UPDATE agent_reward
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 agent_id = #{agentId}
AND reward_status=100
</update>
</mapper> </mapper>
\ No newline at end of file
...@@ -645,13 +645,13 @@ ...@@ -645,13 +645,13 @@
<select id="selectPartnerSettlePageByTs" resultType="com.lanren.huhu.partner.model.PartnerSettle"> <select id="selectPartnerSettlePageByTs" resultType="com.lanren.huhu.partner.model.PartnerSettle">
SELECT SELECT
user_id, user_id,
SUM(CASE WHEN reward_type IN (110,120) 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_order_commission, SUM(CASE WHEN reward_type IN (110,120) THEN commission_acount * CASE WHEN user_is_super=1 THEN 0.97 WHEN user_partner_level=20 THEN 0.94 ELSE 1 END
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, ELSE 0 END) sum_order_commission,
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 NOT IN (60,110,120) THEN commission_acount ELSE 0 END) sum_others,
SUM(CASE 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
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 1 END ELSE 0 END) tech_charge,
ELSE 0 END
) tech_charge,
0 wx_income, 0 wx_income,
0 wx_tax, 0 wx_tax,
0 bank_income, 0 bank_income,
...@@ -667,12 +667,13 @@ ...@@ -667,12 +667,13 @@
<select id="selectPartnerSettleByTsAndUid" resultType="com.lanren.huhu.partner.model.PartnerSettle"> <select id="selectPartnerSettleByTsAndUid" resultType="com.lanren.huhu.partner.model.PartnerSettle">
SELECT SELECT
user_id, user_id,
SUM(CASE WHEN reward_type IN (110,120) 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_order_commission, SUM(CASE WHEN reward_type IN (110,120) THEN commission_acount * CASE WHEN user_is_super=1 THEN 0.97 WHEN user_partner_level=20 THEN 0.94 ELSE 1 END
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, ELSE 0 END) sum_order_commission,
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 NOT IN (60,110,120) THEN commission_acount ELSE 0 END) sum_others,
SUM(CASE 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
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 1 END ELSE 0 END
ELSE 0 END
) tech_charge, ) tech_charge,
0 wx_income, 0 wx_income,
0 wx_tax, 0 wx_tax,
......
ALTER TABLE `huhu`.`partner_account_log` ALTER TABLE `huhu`.`partner_account_log`
ADD COLUMN `snapshot` varchar(512) NULL COMMENT '变更前的快照' AFTER `modify_time`; ADD COLUMN `snapshot` varchar(512) NULL COMMENT '变更前的快照' AFTER `modify_time`;
ALTER TABLE `huhu`.`agent_salary`
MODIFY COLUMN `balance` decimal(20, 6) UNSIGNED NOT NULL DEFAULT 0 COMMENT '总金额' AFTER `month`,
MODIFY COLUMN `opencard_balance` decimal(20, 6) UNSIGNED NOT NULL DEFAULT 0 COMMENT '开卡奖励金额' AFTER `balance`,
MODIFY COLUMN `recharge_balance` decimal(20, 6) UNSIGNED NOT NULL DEFAULT 0 COMMENT '充值奖励金额' AFTER `opencard_balance`,
MODIFY COLUMN `upgrade_balance` decimal(20, 6) UNSIGNED NOT NULL DEFAULT 0 COMMENT '购买VIP会员奖励金额' AFTER `recharge_balance`,
MODIFY COLUMN `upgrade_super_balance` decimal(20, 6) NOT NULL DEFAULT 0 COMMENT '购买超级VIP会员奖励金额' AFTER `upgrade_balance`,
ADD COLUMN `share_balance` decimal(20, 6) NOT NULL DEFAULT 0 COMMENT '分享赚奖励' AFTER `upgrade_super_balance`,
ADD COLUMN `zigousheng_balance` decimal(20, 6) NOT NULL DEFAULT 0 COMMENT '自购省奖励' AFTER `share_balance`,
ADD COLUMN `pingtui_balance` decimal(20, 6) NOT NULL DEFAULT 0 COMMENT '推荐分成奖励' AFTER `zigousheng_balance`,
ADD COLUMN `tech_charge` decimal(20, 6) NOT NULL COMMENT '技术服务费' AFTER `pingtui_balance`,
MODIFY COLUMN `tax_balance` decimal(20, 6) UNSIGNED NOT NULL DEFAULT 0 COMMENT '缴税金额' AFTER `upgrade_super_balance`;
ALTER TABLE `huhu`.`agent_reward`
MODIFY COLUMN `reward_type` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '奖励类型 40 开卡奖励 50 充值奖励 30 购买VIP会员 20 购买超级VIP会员 60 分享赚 300 自购省 得的购买年-VIP; 720 城市代理商所得的购买半年-VIP; 730 城市代理商所得的购买超级VIP收益; 740 城市代理商的红包收益; 750 城市代理商的自购省收益; 760 城市代理商的分享赚收益 ' AFTER `user_id`;
ALTER TABLE `huhu`.`agent_account_log`
ADD COLUMN `snapshot` varchar(255) NOT NULL DEFAULT '' COMMENT '变更前的快照' AFTER `modify_time`;
\ 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