Commit cfc9a1c7 by guanchen

更新 代理商 和 合伙人 结算逻辑

parent 07c1474a
...@@ -69,7 +69,7 @@ public class Constants { ...@@ -69,7 +69,7 @@ public class Constants {
*/ */
public static final int REWARD_STATUS_UNSETTLE = 100; public static final int REWARD_STATUS_UNSETTLE = 100;
public static final int REWARD_STATUS_SETTLE = 120; public static final int REWARD_STATUS_SETTLE = 120;
public static final int REWARD_STATUS_FAILED = 99; // public static final int REWARD_STATUS_FAILED = 99;
/** /**
* 最小奖励金额 小于此不写入 * 最小奖励金额 小于此不写入
*/ */
......
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); }} 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 \ 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.AgentExpandDaily; import com.lanren.huhu.partner.domain.AgentExpandDaily;
import java.util.List; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.UpdateProvider;
import com.lanren.huhu.partner.service.AgentExpandDailyService; import java.util.List;
import org.apache.ibatis.annotations.*;
@Mapper @Mapper
public interface AgentExpandDailyMapper extends BaseMapper<AgentExpandDaily> { public interface AgentExpandDailyMapper extends BaseMapper<AgentExpandDaily> {
...@@ -19,4 +20,6 @@ public interface AgentExpandDailyMapper extends BaseMapper<AgentExpandDaily> { ...@@ -19,4 +20,6 @@ public interface AgentExpandDailyMapper extends BaseMapper<AgentExpandDaily> {
@UpdateProvider(type = AgentExpandDailySqlProvider.class, method = "updateByDatByDetail") @UpdateProvider(type = AgentExpandDailySqlProvider.class, method = "updateByDatByDetail")
int updateByDatByDetail(String datStr); int updateByDatByDetail(String datStr);
Integer getMonthCntByAgent(int agentId, long beginTs, long endTs);
} }
\ No newline at end of file
...@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage; ...@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.lanren.huhu.partner.domain.PartnerReward; import com.lanren.huhu.partner.domain.PartnerReward;
import com.lanren.huhu.partner.model.PartnerSettle; 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.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
...@@ -31,5 +30,5 @@ public interface PartnerRewardMapper extends BaseMapper<PartnerReward> { ...@@ -31,5 +30,5 @@ public interface PartnerRewardMapper extends BaseMapper<PartnerReward> {
int updateRewardStatusByUidAndTs(Integer userId, Long beginTs, Long endTs); int updateRewardStatusByUidAndTs(Integer userId, Long beginTs, Long endTs);
PartnerSummaryContent getPartnerSummaryContentByUidAndTime(int userId, long beginTs, long endTs); // PartnerSummaryContent getPartnerSummaryContentByUidAndTime(int userId, long beginTs, long endTs);
} }
\ No newline at end of file
...@@ -8,7 +8,6 @@ import lombok.Data; ...@@ -8,7 +8,6 @@ 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.util.Date; import java.util.Date;
@Data @Data
...@@ -78,25 +77,25 @@ public class AgentSalary implements Serializable { ...@@ -78,25 +77,25 @@ public class AgentSalary implements Serializable {
private BigDecimal upgradeSuperBalance; private BigDecimal upgradeSuperBalance;
/** /**
* 缴税金额
*/
@TableField(value = "tax_balance")
private BigDecimal taxBalance;
/**
* 分享赚奖励 * 分享赚奖励
*/ */
@TableField(value = "share_balance") @TableField(value = "share_balance")
private BigDecimal shareBalance; private BigDecimal shareBalance;
/** /**
* 自购省奖励 * 缴税金额
*/
@TableField(value = "tax_balance")
private BigDecimal taxBalance;
/**
* 自购省奖励金额
*/ */
@TableField(value = "zigousheng_balance") @TableField(value = "zigousheng_balance")
private BigDecimal zigoushengBalance; private BigDecimal zigoushengBalance;
/** /**
* 推荐分成奖励 * 来自城市代理商的平推奖励
*/ */
@TableField(value = "pingtui_balance") @TableField(value = "pingtui_balance")
private BigDecimal pingtuiBalance; private BigDecimal pingtuiBalance;
...@@ -108,6 +107,18 @@ public class AgentSalary implements Serializable { ...@@ -108,6 +107,18 @@ public class AgentSalary implements Serializable {
private BigDecimal techCharge; private BigDecimal techCharge;
/** /**
* 红包技术服务费
*/
@TableField(value = "tech_charge_redpack")
private BigDecimal techChargeRedpack;
/**
* 佣金技术服务费
*/
@TableField(value = "tech_charge_order")
private BigDecimal techChargeOrder;
/**
* 姓名或许公司名称 * 姓名或许公司名称
*/ */
@TableField(value = "bank_account") @TableField(value = "bank_account")
...@@ -153,7 +164,7 @@ public class AgentSalary implements Serializable { ...@@ -153,7 +164,7 @@ public class AgentSalary implements Serializable {
* 提现时间 * 提现时间
*/ */
@TableField(value = "modify_time") @TableField(value = "modify_time")
private LocalDateTime modifyTime; private Date modifyTime;
@TableField(value = "created_at") @TableField(value = "created_at")
private Long createdAt; private Long createdAt;
...@@ -186,16 +197,20 @@ public class AgentSalary implements Serializable { ...@@ -186,16 +197,20 @@ public class AgentSalary implements Serializable {
public static final String COL_UPGRADE_SUPER_BALANCE = "upgrade_super_balance"; public static final String COL_UPGRADE_SUPER_BALANCE = "upgrade_super_balance";
public static final String COL_TAX_BALANCE = "tax_balance";
public static final String COL_SHARE_BALANCE = "share_balance"; public static final String COL_SHARE_BALANCE = "share_balance";
public static final String COL_TAX_BALANCE = "tax_balance";
public static final String COL_ZIGOUSHENG_BALANCE = "zigousheng_balance"; public static final String COL_ZIGOUSHENG_BALANCE = "zigousheng_balance";
public static final String COL_PINGTUI_BALANCE = "pingtui_balance"; public static final String COL_PINGTUI_BALANCE = "pingtui_balance";
public static final String COL_TECH_CHARGE = "tech_charge"; public static final String COL_TECH_CHARGE = "tech_charge";
public static final String COL_TECH_CHARGE_REDPACK = "tech_charge_redpack";
public static final String COL_TECH_CHARGE_ORDER = "tech_charge_order";
public static final String COL_BANK_ACCOUNT = "bank_account"; public static final String COL_BANK_ACCOUNT = "bank_account";
public static final String COL_BANK_CARD_NUMBER = "bank_card_number"; public static final String COL_BANK_CARD_NUMBER = "bank_card_number";
......
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; }} 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 \ No newline at end of file
......
...@@ -19,6 +19,8 @@ public class AgentSettle extends BaseModel { ...@@ -19,6 +19,8 @@ public class AgentSettle extends BaseModel {
private int agentLevel; private int agentLevel;
private BigDecimal balance; private BigDecimal balance;
private BigDecimal techCharge; private BigDecimal techCharge;
private BigDecimal techChargeRedpack;
private BigDecimal techChargeOrder;
private BigDecimal opencardBalance; private BigDecimal opencardBalance;
private BigDecimal rechargeBalance; private BigDecimal rechargeBalance;
private BigDecimal upgradeBalance; private BigDecimal upgradeBalance;
...@@ -26,4 +28,17 @@ public class AgentSettle extends BaseModel { ...@@ -26,4 +28,17 @@ public class AgentSettle extends BaseModel {
private BigDecimal shareBalance; private BigDecimal shareBalance;
private BigDecimal zigoushengBalance; private BigDecimal zigoushengBalance;
private BigDecimal pingtuiBalance; private BigDecimal pingtuiBalance;
private BigDecimal tax;
private BigDecimal cashPlace;
private int numPlace;
private BigDecimal cashRecharge;
private int numRecharge;
private BigDecimal cashOpenCard;
private int numOpenCard;
private BigDecimal cashUpgradePartner;
private int numUpgradePartner;
private BigDecimal marketPerformance;
private BigDecimal cashUpgradeMarket;
private BigDecimal cashRechargeMarket;
} }
package com.lanren.huhu.partner.model;
import com.lanren.huhu.partner.model.base.BaseModel;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author chen
* @title: AgentSummaryContent
* @projectName partner
* @description: TODO
* @package com.lanren.huhu.partner.model
* @date 2019-08-21 16:26
*/
@Data
public class AgentSummaryContent extends BaseModel {
private BigDecimal cashPlace;
private int numPlace;
private BigDecimal cashRecharge;
private int numRecharge;
private BigDecimal cashOpenCard;
private int numOpenCard;
private BigDecimal cashUpgradePartner;
private int numUpgradePartner;
private BigDecimal marketPerformance;
private BigDecimal cashUpgradeMarket;
private BigDecimal cashRechargeMarket;
private int expandUsers;
}
package com.lanren.huhu.partner.model;
import com.lanren.huhu.partner.model.base.BaseModel;
import lombok.Data;
/**
* @author chen
* @title: OrderParam
* @projectName partner
* @package com.lanren.huhu.partner.model
* @date 2019-08-20 19:50
*/
@Data
public class OrderParam extends BaseModel {
private String orderType;
private String orderSn;
@Override
public boolean equals(Object obj) {
if(obj==null) {
return false;
}
if(this==obj) {
return true;
}
if(obj instanceof OrderParam){
OrderParam orderParam = (OrderParam) obj;
if(orderParam.orderType.equals(this.orderType) &&
orderParam.orderSn.equals(this.orderSn)) {
return true;
} else {
return false;
}
}
return false;
}
}
...@@ -16,12 +16,51 @@ import java.math.BigDecimal; ...@@ -16,12 +16,51 @@ import java.math.BigDecimal;
@Data @Data
public class PartnerSettle extends BaseModel { public class PartnerSettle extends BaseModel {
private int userId; private int userId;
/**
* 扣除技术服务费后的购物奖励 包含 平台额外奖励部分
*/
private BigDecimal sumOrderCommission; private BigDecimal sumOrderCommission;
/**
* 扣除技术服务费后的在线充值奖励 包含 平台额外奖励部分
*/
private BigDecimal sumRedpack; private BigDecimal sumRedpack;
/**
* 其他全部奖励
*/
private BigDecimal sumOthers; private BigDecimal sumOthers;
private BigDecimal techCharge; private BigDecimal techChargeRedpack;
private BigDecimal techChargeOrder;
private BigDecimal wxIncome; private BigDecimal wxIncome;
private BigDecimal wxTax; private BigDecimal wxTax;
private BigDecimal bankIncome; private BigDecimal bankIncome;
private BigDecimal bankTax; private BigDecimal bankTax;
/**
* 在线充值
*/
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;
} }
...@@ -26,4 +26,15 @@ public class PartnerSummaryContent extends BaseModel { ...@@ -26,4 +26,15 @@ public class PartnerSummaryContent extends BaseModel {
private BigDecimal scash; private BigDecimal scash;
private int snum; private int snum;
private BigDecimal rcash; private BigDecimal rcash;
private BigDecimal techChargeRedpack;
private BigDecimal techChargeOrder;
private BigDecimal sumOrderCommission;
private BigDecimal sumRedpack;
private BigDecimal sumOthers;
private BigDecimal wxIncome;
private BigDecimal wxTax;
private BigDecimal wxFreeBalance;
private BigDecimal bankIncome;
private BigDecimal bankTax;
private BigDecimal bankFreeBalance;
} }
package com.lanren.huhu.partner.model;
import com.lanren.huhu.partner.model.base.BaseModel;
import lombok.Data;
/**
* @author chen
* @title: SubSubOrderParam
* @projectName partner
* @package com.lanren.huhu.partner.model
* @date 2019-08-20 19:51
*/
@Data
public class SubOrderParam extends BaseModel {
private String orderType;
private String orderSn;
private String subOrderSn;
@Override
public boolean equals(Object obj) {
if(obj==null) {
return false;
}
if(this==obj) {
return true;
}
if(obj instanceof SubOrderParam){
SubOrderParam orderParam = (SubOrderParam) obj;
if(orderParam.orderType.equals(this.orderType) &&
orderParam.orderSn.equals(this.orderSn) &&
orderParam.subOrderSn.equals(this.subOrderSn)) {
return true;
} else {
return false;
}
}
return false;
}
}
...@@ -63,11 +63,19 @@ public class AgentDailyExpandTask { ...@@ -63,11 +63,19 @@ public class AgentDailyExpandTask {
Date dat = DateUtils.parse(datStr, DateUtils.FORMAT_SHORT); Date dat = DateUtils.parse(datStr, DateUtils.FORMAT_SHORT);
int now = (int)(System.currentTimeMillis() / 1000L); int now = (int)(System.currentTimeMillis() / 1000L);
int pageNo = 1; int pageNo = 1;
int total = 0;
int totalPage = 0;
int cnt = 0;
long beginTs = DateUtils.parse(datStr, DateUtils.FORMAT_SHORT).getTime() / 1000L; long beginTs = DateUtils.parse(datStr, DateUtils.FORMAT_SHORT).getTime() / 1000L;
long endTs = beginTs + 24 * 60 * 60L - 1L; long endTs = beginTs + 24 * 60 * 60L - 1L;
while (true) { while (true) {
Page<PartnerInviteRelation> page = new Page<PartnerInviteRelation>(pageNo, PAGE_SIZE); Page<PartnerInviteRelation> page = new Page<PartnerInviteRelation>(pageNo, PAGE_SIZE);
IPage<PartnerInviteRelation> ipage = partnerInviteRelationService.selectPageByTs(page, beginTs, endTs); IPage<PartnerInviteRelation> ipage = partnerInviteRelationService.selectPageByTs(page, beginTs, endTs);
if (total == 0) {
total = (int) ipage.getTotal();
totalPage = total % PAGE_SIZE == 0 ? total / PAGE_SIZE : total / PAGE_SIZE + 1;
logger.info("totalPage is {} ", totalPage);
}
List<PartnerInviteRelation> partnerInviteRelationList = ipage.getRecords(); List<PartnerInviteRelation> partnerInviteRelationList = ipage.getRecords();
if (partnerInviteRelationList != null && partnerInviteRelationList.size() > 0) { if (partnerInviteRelationList != null && partnerInviteRelationList.size() > 0) {
for (PartnerInviteRelation partnerInviteRelation : partnerInviteRelationList) { for (PartnerInviteRelation partnerInviteRelation : partnerInviteRelationList) {
...@@ -83,15 +91,18 @@ public class AgentDailyExpandTask { ...@@ -83,15 +91,18 @@ public class AgentDailyExpandTask {
detail.setUpdatedAt(now); detail.setUpdatedAt(now);
agentExpandDetailService.insertOrUpdate(detail); agentExpandDetailService.insertOrUpdate(detail);
} }
cnt++;
} }
if (partnerInviteRelationList.size() > 0) { if (partnerInviteRelationList.size() > 0) {
agentExpandDailyService.updateByDatByDetail(datStr); agentExpandDailyService.updateByDatByDetail(datStr);
} }
pageNo++; }
} else { if (pageNo >= totalPage) {
break; break;
} }
pageNo++;
} }
logger.info("cnt is {}", cnt);
} catch (Exception e) { } catch (Exception e) {
logger.error(e.getMessage(), e); logger.error(e.getMessage(), e);
} }
......
...@@ -7,11 +7,15 @@ import com.lanren.huhu.partner.service.AgentRewardService; ...@@ -7,11 +7,15 @@ import com.lanren.huhu.partner.service.AgentRewardService;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import static com.lanren.huhu.partner.constants.Constants.*; import static com.lanren.huhu.partner.constants.Constants.*;
...@@ -32,6 +36,10 @@ public class RevokeAgentRewardTask { ...@@ -32,6 +36,10 @@ public class RevokeAgentRewardTask {
AgentRevokeRecordsService agentRevokeRecordsService; AgentRevokeRecordsService agentRevokeRecordsService;
@Autowired @Autowired
AgentRewardService agentRewardService; AgentRewardService agentRewardService;
@Autowired
DataSourceTransactionManager dataSourceTransactionManager;
@Autowired
TransactionDefinition transactionDefinition;
@Scheduled(fixedDelay = 5000L) @Scheduled(fixedDelay = 5000L)
public void runScheduledTask() { public void runScheduledTask() {
...@@ -62,46 +70,67 @@ public class RevokeAgentRewardTask { ...@@ -62,46 +70,67 @@ public class RevokeAgentRewardTask {
} }
} }
public void process(AgentRevokeRecords revokeRecord) { private void process(AgentRevokeRecords revokeRecord) {
TransactionStatus transactionStatus = null;
try {
int revokeType = revokeRecord.getRevokeType(); int revokeType = revokeRecord.getRevokeType();
if (!AGENT_REVOKE_TYPE_MAP.keySet().contains(revokeType)) { if (!AGENT_REVOKE_TYPE_MAP.keySet().contains(revokeType)) {
logger.info("未知的奖励类型 跳过不处理: {}", revokeRecord); logger.info("未知的奖励类型 跳过不处理: {}", revokeRecord);
return; return;
} }
AgentReward agentReward = null; /**
* 开启事务
*/
transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition);
List<AgentReward> agentRewardList = null;
List<AgentReward> insertList = new ArrayList<AgentReward>();
List<AgentReward> updateList = new ArrayList<AgentReward>();
if (revokeType == AGENT_REVOKE_TYPE_ACTIVATION || revokeType == AGENT_REVOKE_TYPE_SELF_ORDER) { if (revokeType == AGENT_REVOKE_TYPE_ACTIVATION || revokeType == AGENT_REVOKE_TYPE_SELF_ORDER) {
agentReward = agentRewardService.getOneByRefId(revokeRecord.getRefId()); agentRewardList = agentRewardService.getListByRefId(revokeRecord.getRefId());
} else if (revokeType == AGENT_REVOKE_TYPE_SHARE_ORDER) { } else if (revokeType == AGENT_REVOKE_TYPE_SHARE_ORDER) {
agentReward = agentRewardService.getOneBySubOrderSn(revokeRecord.getOrderType(), revokeRecord.getOrderSn(), revokeRecord.getSubOrderSn()); agentRewardList = agentRewardService.getListBySubOrderSn(revokeRecord.getOrderType(), revokeRecord.getOrderSn(), revokeRecord.getSubOrderSn());
} else { } else {
revokeRecord.setState(REVOKE_STATE_DO_NOTHING); revokeRecord.setState(REVOKE_STATE_DO_NOTHING);
} }
/** /**
* 已结算状态 插负, 未结算状态 抹平 * 已结算状态 插负, 未结算状态 抹平
*/ */
if (null != agentReward) { if (null != agentRewardList && agentRewardList.size() > 0) {
for (AgentReward agentReward : agentRewardList) {
if (agentReward.getSettleState() == SETTLE_STATE_DONE) { if (agentReward.getSettleState() == SETTLE_STATE_DONE) {
agentReward.setAmount(agentReward.getAmount().negate()); agentReward.setAmount(agentReward.getAmount().negate());
agentReward.setCommission(agentReward.getCommission().negate()); agentReward.setCommission(agentReward.getCommission().negate());
if (agentRewardService.insertOne(agentReward) > 0) { insertList.add(agentReward);
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) { } else if (agentReward.getSettleState() == SETTLE_STATE_ON_THE_WAY || agentReward.getSettleState() == SETTLE_STATE_PRE) {
agentReward.setAmount(new BigDecimal(0)); agentReward.setAmount(new BigDecimal(0));
agentReward.setCommission(new BigDecimal(0)); agentReward.setCommission(new BigDecimal(0));
if (agentRewardService.updateById(agentReward)) { updateList.add(agentReward);
revokeRecord.setState(REVOKE_STATE_DONE);
} else {
revokeRecord.setState(REVOKE_STATE_FAILED);
} }
} else {
revokeRecord.setState(REVOKE_STATE_DO_NOTHING);
} }
if (updateList.size() > 0) {
agentRewardService.updateBatch(updateList);
}
if (insertList.size() > 0) {
agentRewardService.batchInsert(insertList);
}
revokeRecord.setState(REVOKE_STATE_DONE);
} else { } else {
revokeRecord.setState(REVOKE_STATE_DO_NOTHING); revokeRecord.setState(REVOKE_STATE_DO_NOTHING);
} }
agentRevokeRecordsService.updateById(revokeRecord); agentRevokeRecordsService.updateById(revokeRecord);
/**
* 提交事务
*/
dataSourceTransactionManager.commit(transactionStatus);
} catch (Exception e) {
/**
* 回滚事务
*/
dataSourceTransactionManager.rollback(transactionStatus);
logger.error(e.getMessage(), e);
revokeRecord.setState(REVOKE_STATE_FAILED);
agentRevokeRecordsService.updateById(revokeRecord);
}
} }
} }
package com.lanren.huhu.partner.service; package com.lanren.huhu.partner.service;
import java.util.List;
import com.lanren.huhu.partner.domain.AgentExpandDaily;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.lanren.huhu.partner.domain.AgentExpandDaily;
import java.util.List;
/** /**
* @author chen * @author chen
...@@ -24,6 +25,8 @@ public interface AgentExpandDailyService extends IService<AgentExpandDaily> { ...@@ -24,6 +25,8 @@ public interface AgentExpandDailyService extends IService<AgentExpandDaily> {
int insertOrUpdateSelective(AgentExpandDaily record); int insertOrUpdateSelective(AgentExpandDaily record);
int updateByDatByDetail(String datStr); int updateByDatByDetail(String datStr);
Integer getMonthCntByAgent(int agentId, long beginTs, long endTs);
} }
...@@ -27,9 +27,9 @@ public interface AgentRewardService extends IService<AgentReward> { ...@@ -27,9 +27,9 @@ public interface AgentRewardService extends IService<AgentReward> {
int insertOrUpdateSelective(AgentReward record); int insertOrUpdateSelective(AgentReward record);
AgentReward getOneByRefId(String refId); List<AgentReward> getListByRefId(String refId);
AgentReward getOneBySubOrderSn(String orderType, String orderSn, String subOrderSn); List<AgentReward> getListBySubOrderSn(String orderType, String orderSn, String subOrderSn);
int insertOne(AgentReward record); int insertOne(AgentReward record);
......
...@@ -27,3 +27,4 @@ public interface AgentSalaryService extends IService<AgentSalary> { ...@@ -27,3 +27,4 @@ public interface AgentSalaryService extends IService<AgentSalary> {
int insert(AgentSalary agentSalary); int insert(AgentSalary agentSalary);
} }
...@@ -2,8 +2,10 @@ package com.lanren.huhu.partner.service; ...@@ -2,8 +2,10 @@ package com.lanren.huhu.partner.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.lanren.huhu.partner.domain.OrderTaobaoJdCommission; import com.lanren.huhu.partner.domain.OrderTaobaoJdCommission;
import com.lanren.huhu.partner.model.OrderParam;
import java.util.List; import java.util.List;
import java.util.Set;
/** /**
* @author houseme * @author houseme
...@@ -23,6 +25,6 @@ public interface OrderTaobaoJdCommissionService extends IService<OrderTaobaoJdCo ...@@ -23,6 +25,6 @@ public interface OrderTaobaoJdCommissionService extends IService<OrderTaobaoJdCo
int insertOrUpdateSelective(OrderTaobaoJdCommission record); int insertOrUpdateSelective(OrderTaobaoJdCommission record);
OrderTaobaoJdCommission getOneByOrderSn(String orderType, String orderSn); List<OrderTaobaoJdCommission> selectListByOrderParamSet(Set<OrderParam> orderParamSet);
} }
...@@ -2,9 +2,12 @@ package com.lanren.huhu.partner.service; ...@@ -2,9 +2,12 @@ package com.lanren.huhu.partner.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.lanren.huhu.partner.domain.OrderTaobaoJdGoodsCommission; import com.lanren.huhu.partner.domain.OrderTaobaoJdGoodsCommission;
import com.lanren.huhu.partner.model.SubOrderParam;
import java.util.List; import java.util.List;
/** import java.util.Set;
/**
* @title: ${NAME} * @title: ${NAME}
* @projectName partner * @projectName partner
* @description: TODO * @description: TODO
...@@ -23,5 +26,5 @@ public interface OrderTaobaoJdGoodsCommissionService extends IService<OrderTaoba ...@@ -23,5 +26,5 @@ public interface OrderTaobaoJdGoodsCommissionService extends IService<OrderTaoba
int insertOrUpdateSelective(OrderTaobaoJdGoodsCommission record); int insertOrUpdateSelective(OrderTaobaoJdGoodsCommission record);
OrderTaobaoJdGoodsCommission getOneByOrderSn(String orderType, String orderSn, String subOrderSn); List<OrderTaobaoJdGoodsCommission> selectListBySubOrderParamsSet(Set<SubOrderParam> subOrderParamsSet);
} }
...@@ -2,9 +2,12 @@ package com.lanren.huhu.partner.service; ...@@ -2,9 +2,12 @@ package com.lanren.huhu.partner.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.lanren.huhu.partner.domain.OrdersActive; import com.lanren.huhu.partner.domain.OrdersActive;
import com.lanren.huhu.partner.model.OrderParam;
import java.util.List; import java.util.List;
/** import java.util.Set;
/**
* @title: ${NAME} * @title: ${NAME}
* @projectName partner * @projectName partner
* @description: TODO * @description: TODO
...@@ -23,5 +26,5 @@ public interface OrdersActiveService extends IService<OrdersActive>{ ...@@ -23,5 +26,5 @@ public interface OrdersActiveService extends IService<OrdersActive>{
int insertOrUpdateSelective(OrdersActive record); int insertOrUpdateSelective(OrdersActive record);
OrdersActive getOneByOrderSn(String type, String orderSn); List<OrdersActive> selectListByOrderParamSet(Set<OrderParam> orderParamSet);
} }
...@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -5,7 +5,6 @@ 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.PartnerReward; import com.lanren.huhu.partner.domain.PartnerReward;
import com.lanren.huhu.partner.model.PartnerSettle; import com.lanren.huhu.partner.model.PartnerSettle;
import com.lanren.huhu.partner.model.PartnerSummaryContent;
import java.util.List; import java.util.List;
...@@ -48,6 +47,6 @@ public interface PartnerRewardService extends IService<PartnerReward> { ...@@ -48,6 +47,6 @@ public interface PartnerRewardService extends IService<PartnerReward> {
*/ */
int updateRewardStatusByUidAndTs(Integer userId, Long beginTs, Long endTs); int updateRewardStatusByUidAndTs(Integer userId, Long beginTs, Long endTs);
PartnerSummaryContent getPartnerSummaryContentByUidAndTime(int userId, long beginTs, long endTs); // PartnerSummaryContent getPartnerSummaryContentByUidAndTime(int userId, long beginTs, long endTs);
} }
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 com.lanren.huhu.partner.dao.AgentExpandDailyMapper; import com.lanren.huhu.partner.dao.AgentExpandDailyMapper;
import java.util.List;
import com.lanren.huhu.partner.domain.AgentExpandDaily; import com.lanren.huhu.partner.domain.AgentExpandDaily;
import com.lanren.huhu.partner.service.AgentExpandDailyService; import com.lanren.huhu.partner.service.AgentExpandDailyService;
import org.springframework.stereotype.Service;
import java.util.List;
/** /**
* @author chen * @author chen
...@@ -44,6 +43,11 @@ public class AgentExpandDailyServiceImpl extends ServiceImpl<AgentExpandDailyMap ...@@ -44,6 +43,11 @@ public class AgentExpandDailyServiceImpl extends ServiceImpl<AgentExpandDailyMap
public int updateByDatByDetail(String datStr) { public int updateByDatByDetail(String datStr) {
return baseMapper.updateByDatByDetail(datStr); return baseMapper.updateByDatByDetail(datStr);
} }
@Override
public Integer getMonthCntByAgent(int agentId, long beginTs, long endTs) {
return baseMapper.getMonthCntByAgent(agentId, beginTs, endTs);
}
} }
package com.lanren.huhu.partner.service.impl; package com.lanren.huhu.partner.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
...@@ -44,15 +45,18 @@ public class AgentRewardServiceImpl extends ServiceImpl<AgentRewardMapper, Agent ...@@ -44,15 +45,18 @@ public class AgentRewardServiceImpl extends ServiceImpl<AgentRewardMapper, Agent
} }
@Override @Override
public AgentReward getOneByRefId(String refId) { public List<AgentReward> getListByRefId(String refId) {
return null; QueryWrapper<AgentReward> wrapper = new QueryWrapper<AgentReward>();
wrapper.eq("reference_id", refId).gt("settle_state", 0);
return baseMapper.selectList(wrapper);
} }
@Override @Override
public AgentReward getOneBySubOrderSn(String orderType, String orderSn, String subOrderSn) { public List<AgentReward> getListBySubOrderSn(String orderType, String orderSn, String subOrderSn) {
return null; QueryWrapper<AgentReward> wrapper = new QueryWrapper<AgentReward>();
wrapper.eq("order_type", orderType).eq("order_sn", orderSn).eq("sub_order_sn", subOrderSn)
.gt("settle_state", 0);
return baseMapper.selectList(wrapper);
} }
@Override @Override
public int insertOne(AgentReward record) { public int insertOne(AgentReward record) {
List<AgentReward> list = new ArrayList<AgentReward>(); List<AgentReward> list = new ArrayList<AgentReward>();
......
...@@ -39,6 +39,7 @@ public class AgentSalaryServiceImpl extends ServiceImpl<AgentSalaryMapper, Agent ...@@ -39,6 +39,7 @@ public class AgentSalaryServiceImpl extends ServiceImpl<AgentSalaryMapper, Agent
public int insertOrUpdateSelective(AgentSalary record) { public int insertOrUpdateSelective(AgentSalary record) {
return baseMapper.insertOrUpdateSelective(record); return baseMapper.insertOrUpdateSelective(record);
} }
@Override @Override
@Options(useGeneratedKeys = true, keyProperty = "agentSalary", keyColumn = "id") @Options(useGeneratedKeys = true, keyProperty = "agentSalary", keyColumn = "id")
public int insert(AgentSalary agentSalary) { public int insert(AgentSalary agentSalary) {
...@@ -46,3 +47,4 @@ public class AgentSalaryServiceImpl extends ServiceImpl<AgentSalaryMapper, Agent ...@@ -46,3 +47,4 @@ public class AgentSalaryServiceImpl extends ServiceImpl<AgentSalaryMapper, Agent
} }
} }
...@@ -4,10 +4,13 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; ...@@ -4,10 +4,13 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lanren.huhu.partner.dao.OrderTaobaoJdCommissionMapper; import com.lanren.huhu.partner.dao.OrderTaobaoJdCommissionMapper;
import com.lanren.huhu.partner.domain.OrderTaobaoJdCommission; import com.lanren.huhu.partner.domain.OrderTaobaoJdCommission;
import com.lanren.huhu.partner.model.OrderParam;
import com.lanren.huhu.partner.service.OrderTaobaoJdCommissionService; import com.lanren.huhu.partner.service.OrderTaobaoJdCommissionService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Set;
/** /**
* @author houseme * @author houseme
...@@ -40,10 +43,18 @@ public class OrderTaobaoJdCommissionServiceImpl extends ServiceImpl<OrderTaobaoJ ...@@ -40,10 +43,18 @@ public class OrderTaobaoJdCommissionServiceImpl extends ServiceImpl<OrderTaobaoJ
} }
@Override @Override
public OrderTaobaoJdCommission getOneByOrderSn(String orderType, String orderSn) { public List<OrderTaobaoJdCommission> selectListByOrderParamSet(Set<OrderParam> orderParamSet) {
QueryWrapper<OrderTaobaoJdCommission> wrapper = new QueryWrapper<OrderTaobaoJdCommission>(); QueryWrapper<OrderTaobaoJdCommission> wrapper = new QueryWrapper<OrderTaobaoJdCommission>();
wrapper.eq("type", orderType).eq("order_sn", orderSn); Iterator<OrderParam> iterator = orderParamSet.iterator();
return baseMapper.selectOne(wrapper); for (int idx = 0; idx < orderParamSet.size(); idx++) {
OrderParam order = iterator.next();
wrapper.nested(i -> i.eq("type", order.getOrderType())
.eq("order_sn", order.getOrderSn()));
if (idx < orderParamSet.size() - 1) {
wrapper.or();
}
}
return baseMapper.selectList(wrapper);
} }
} }
...@@ -4,10 +4,14 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; ...@@ -4,10 +4,14 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lanren.huhu.partner.dao.OrderTaobaoJdGoodsCommissionMapper; import com.lanren.huhu.partner.dao.OrderTaobaoJdGoodsCommissionMapper;
import com.lanren.huhu.partner.domain.OrderTaobaoJdGoodsCommission; import com.lanren.huhu.partner.domain.OrderTaobaoJdGoodsCommission;
import com.lanren.huhu.partner.model.SubOrderParam;
import com.lanren.huhu.partner.service.OrderTaobaoJdGoodsCommissionService; import com.lanren.huhu.partner.service.OrderTaobaoJdGoodsCommissionService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Set;
/** /**
* @title: ${NAME} * @title: ${NAME}
* @projectName partner * @projectName partner
...@@ -36,9 +40,18 @@ public class OrderTaobaoJdGoodsCommissionServiceImpl extends ServiceImpl<OrderTa ...@@ -36,9 +40,18 @@ public class OrderTaobaoJdGoodsCommissionServiceImpl extends ServiceImpl<OrderTa
return baseMapper.insertOrUpdateSelective(record); return baseMapper.insertOrUpdateSelective(record);
} }
@Override @Override
public OrderTaobaoJdGoodsCommission getOneByOrderSn(String orderType, String orderSn, String subOrderSn) { public List<OrderTaobaoJdGoodsCommission> selectListBySubOrderParamsSet(Set<SubOrderParam> subOrderParamsSet) {
QueryWrapper<OrderTaobaoJdGoodsCommission> wrapper = new QueryWrapper<OrderTaobaoJdGoodsCommission>(); QueryWrapper<OrderTaobaoJdGoodsCommission> wrapper = new QueryWrapper<OrderTaobaoJdGoodsCommission>();
wrapper.eq("type", orderType).eq("order_sn", orderSn).eq("sub_order_sn", subOrderSn); Iterator<SubOrderParam> iterator = subOrderParamsSet.iterator();
return baseMapper.selectOne(wrapper); for (int idx = 0; idx < subOrderParamsSet.size(); idx++) {
SubOrderParam order = iterator.next();
wrapper.nested(i -> i.eq("type", order.getOrderType())
.eq("order_sn", order.getOrderSn())
.eq("sub_order_sn", order.getSubOrderSn()));
if (idx < subOrderParamsSet.size() - 1) {
wrapper.or();
}
}
return baseMapper.selectList(wrapper);
} }
} }
package com.lanren.huhu.partner.service.impl; 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lanren.huhu.partner.dao.OrdersActiveMapper; import com.lanren.huhu.partner.dao.OrdersActiveMapper;
import com.lanren.huhu.partner.domain.OrdersActive; import com.lanren.huhu.partner.domain.OrdersActive;
import com.lanren.huhu.partner.model.OrderParam;
import com.lanren.huhu.partner.service.OrdersActiveService; import com.lanren.huhu.partner.service.OrdersActiveService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Set;
/** /**
* @title: ${NAME} * @title: ${NAME}
* @projectName partner * @projectName partner
...@@ -36,7 +41,17 @@ public class OrdersActiveServiceImpl extends ServiceImpl<OrdersActiveMapper, Ord ...@@ -36,7 +41,17 @@ public class OrdersActiveServiceImpl extends ServiceImpl<OrdersActiveMapper, Ord
} }
@Override @Override
public OrdersActive getOneByOrderSn(String type, String orderSn) { public List<OrdersActive> selectListByOrderParamSet(Set<OrderParam> orderParamSet) {
return baseMapper.selectOneByOrderSn(type, orderSn); QueryWrapper<OrdersActive> wrapper = new QueryWrapper<OrdersActive>();
Iterator<OrderParam> iterator = orderParamSet.iterator();
for (int idx = 0; idx < orderParamSet.size(); idx++) {
OrderParam order = iterator.next();
wrapper.nested(i -> i.eq("type", order.getOrderType())
.eq("order_sn", order.getOrderSn()));
if (idx < orderParamSet.size() - 1) {
wrapper.or();
}
}
return baseMapper.selectList(wrapper);
} }
} }
...@@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; ...@@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lanren.huhu.partner.dao.PartnerRewardMapper; import com.lanren.huhu.partner.dao.PartnerRewardMapper;
import com.lanren.huhu.partner.domain.PartnerReward; import com.lanren.huhu.partner.domain.PartnerReward;
import com.lanren.huhu.partner.model.PartnerSettle; import com.lanren.huhu.partner.model.PartnerSettle;
import com.lanren.huhu.partner.model.PartnerSummaryContent;
import com.lanren.huhu.partner.service.PartnerRewardService; import com.lanren.huhu.partner.service.PartnerRewardService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -68,9 +67,9 @@ public class PartnerRewardServiceImpl extends ServiceImpl<PartnerRewardMapper, P ...@@ -68,9 +67,9 @@ public class PartnerRewardServiceImpl extends ServiceImpl<PartnerRewardMapper, P
return baseMapper.updateRewardStatusByUidAndTs(userId, beginTs, endTs); return baseMapper.updateRewardStatusByUidAndTs(userId, beginTs, endTs);
} }
@Override // @Override
public PartnerSummaryContent getPartnerSummaryContentByUidAndTime(int userId, long beginTs, long endTs) { // public PartnerSummaryContent getPartnerSummaryContentByUidAndTime(int userId, long beginTs, long endTs) {
return baseMapper.getPartnerSummaryContentByUidAndTime(userId, beginTs, endTs); // return baseMapper.getPartnerSummaryContentByUidAndTime(userId, beginTs, endTs);
} // }
} }
...@@ -179,4 +179,10 @@ ...@@ -179,4 +179,10 @@
</if> </if>
</trim> </trim>
</insert> </insert>
<select id="getMonthCntByAgent" resultType="int">
SELECT SUM(cnt_expand) cnt
FROM agent_expand_daily
WHERE agent_id=#{agentId}
AND dat BETWEEN FROM_UNIXTIME(#{beginTs}) AND FROM_UNIXTIME(#{endTs})
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -668,31 +668,57 @@ ...@@ -668,31 +668,57 @@
b.agent_level, b.agent_level,
a.balance, a.balance,
a.techCharge, a.techCharge,
a.techChargeRedpack,
a.techChargeOrder,
a.opencardBalance, a.opencardBalance,
a.rechargeBalance, a.rechargeBalance,
a.upgradeBalance, a.upgradeBalance,
a.upgradeSuperBalance, a.upgradeSuperBalance,
a.shareBalance, a.shareBalance,
a.zigoushengBalance, a.zigoushengBalance,
a.pingtuiBalance a.pingtuiBalance,
0 tax,
a.cash_place,
a.num_place,
a.cash_recharge,
a.num_recharge,
a.cash_open_card,
a.num_open_card,
a.cash_upgrade_partner,
a.num_upgrade_partner,
a.marketPerformance,
a.cash_upgrade_market,
a.cash_recharge_market
FROM ( FROM (
SELECT SELECT
agent_id, agent_id,
SUM(amount) balance, SUM(amount) balance,
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 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) then amount * 0.06 else 0 end) techChargeRedpack,
SUM(case when agent_level=4 and reward_type in (60,760,300,750) then amount * 0.06 else 0 end) techChargeOrder,
SUM(case when reward_type in (40) then amount else 0 end) opencardBalance, 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 (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 (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 (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 (60,760) then amount else 0 end) shareBalance,
SUM(case when reward_type in (300,750) then amount else 0 end) zigoushengBalance, SUM(case when reward_type in (300,750) then amount else 0 end) zigoushengBalance,
SUM(0) pingtuiBalance SUM(0) pingtuiBalance,
SUM(if(reward_type IN (60, 750, 300, 760),amount, 0)) AS cash_place,
COUNT(reward_type IN (60, 750, 300, 760) OR NULL) AS num_place,
SUM(if(reward_type IN (50, 740),amount, 0)) AS cash_recharge,
COUNT(reward_type IN (50, 740) OR NULL) AS num_recharge,
SUM(if(reward_type=40, amount, 0)) AS cash_open_card,
COUNT(reward_type=40 OR NULL) AS num_open_card,
SUM(if(reward_type IN (30, 20, 710, 720, 730),amount, 0)) AS cash_upgrade_partner,
COUNT(reward_type IN (30, 20, 710, 720, 730) OR NULL) AS num_upgrade_partner,
SUM(if(reward_type IN (50, 30, 20),cash_code, 0)) AS marketPerformance,
SUM(if(reward_type IN (30, 20),cash_code, 0)) AS cash_upgrade_market,
SUM(if(reward_type=50, cash_code, 0)) AS cash_recharge_market
FROM agent_reward FROM agent_reward
WHERE recharge_time WHERE recharge_time
BETWEEN FROM_UNIXTIME(#{beginTs}) AND FROM_UNIXTIME(#{endTs}) BETWEEN FROM_UNIXTIME(#{beginTs}) AND FROM_UNIXTIME(#{endTs})
AND reward_status=100 AND reward_status=100
GROUP BY 1 GROUP BY 1
ORDER BY 1
) a ) a
JOIN user_agent b ON a.agent_id=b.agent_id JOIN user_agent b ON a.agent_id=b.agent_id
ORDER BY 1,2,3 ORDER BY 1,2,3
...@@ -704,32 +730,58 @@ ...@@ -704,32 +730,58 @@
b.agent_level, b.agent_level,
a.balance, a.balance,
a.techCharge, a.techCharge,
a.techChargeRedpack,
a.techChargeOrder,
a.opencardBalance, a.opencardBalance,
a.rechargeBalance, a.rechargeBalance,
a.upgradeBalance, a.upgradeBalance,
a.upgradeSuperBalance, a.upgradeSuperBalance,
a.shareBalance, a.shareBalance,
a.zigoushengBalance, a.zigoushengBalance,
a.pingtuiBalance a.pingtuiBalance,
0 tax,
a.cash_place,
a.num_place,
a.cash_recharge,
a.num_recharge,
a.cash_open_card,
a.num_open_card,
a.cash_upgrade_partner,
a.num_upgrade_partner,
a.marketPerformance,
a.cash_upgrade_market,
a.cash_recharge_market
FROM ( FROM (
SELECT SELECT
agent_id, agent_id,
SUM(amount) balance, SUM(amount) balance,
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 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) then amount * 0.06 else 0 end) techChargeRedpack,
SUM(case when agent_level=4 and reward_type in (60,760,300,750) then amount * 0.06 else 0 end) techChargeOrder,
SUM(case when reward_type in (40) then amount else 0 end) opencardBalance, 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 (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 (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 (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 (60,760) then amount else 0 end) shareBalance,
SUM(case when reward_type in (300,750) then amount else 0 end) zigoushengBalance, SUM(case when reward_type in (300,750) then amount else 0 end) zigoushengBalance,
SUM(0) pingtuiBalance SUM(0) pingtuiBalance,
SUM(if(reward_type IN (60, 750, 300, 760),amount, 0)) AS cash_place,
COUNT(reward_type IN (60, 750, 300, 760) OR NULL) AS num_place,
SUM(if(reward_type IN (50, 740),amount, 0)) AS cash_recharge,
COUNT(reward_type IN (50, 740) OR NULL) AS num_recharge,
SUM(if(reward_type=40, amount, 0)) AS cash_open_card,
COUNT(reward_type=40 OR NULL) AS num_open_card,
SUM(if(reward_type IN (30, 20, 710, 720, 730),amount, 0)) AS cash_upgrade_partner,
COUNT(reward_type IN (30, 20, 710, 720, 730) OR NULL) AS num_upgrade_partner,
SUM(if(reward_type IN (50, 30, 20),cash_code, 0)) AS marketPerformance,
SUM(if(reward_type IN (30, 20),cash_code, 0)) AS cash_upgrade_market,
SUM(if(reward_type=50, cash_code, 0)) AS cash_recharge_market
FROM agent_reward FROM agent_reward
WHERE recharge_time WHERE recharge_time
BETWEEN FROM_UNIXTIME(#{beginTs}) AND FROM_UNIXTIME(#{endTs}) BETWEEN FROM_UNIXTIME(#{beginTs}) AND FROM_UNIXTIME(#{endTs})
AND reward_status = 100 AND reward_status = 100
AND agent_id = #{agentId} AND agent_id = #{agentId}
GROUP BY 1 GROUP BY 1
ORDER BY 1
) a ) a
JOIN user_agent b ON a.agent_id = b.agent_id JOIN user_agent b ON a.agent_id = b.agent_id
ORDER BY 1,2,3 ORDER BY 1,2,3
......
...@@ -14,11 +14,13 @@ ...@@ -14,11 +14,13 @@
<result column="recharge_balance" property="rechargeBalance" /> <result column="recharge_balance" property="rechargeBalance" />
<result column="upgrade_balance" property="upgradeBalance" /> <result column="upgrade_balance" property="upgradeBalance" />
<result column="upgrade_super_balance" property="upgradeSuperBalance" /> <result column="upgrade_super_balance" property="upgradeSuperBalance" />
<result column="tax_balance" property="taxBalance" />
<result column="share_balance" property="shareBalance" /> <result column="share_balance" property="shareBalance" />
<result column="tax_balance" property="taxBalance" />
<result column="zigousheng_balance" property="zigoushengBalance" /> <result column="zigousheng_balance" property="zigoushengBalance" />
<result column="pingtui_balance" property="pingtuiBalance" /> <result column="pingtui_balance" property="pingtuiBalance" />
<result column="tech_charge" property="techCharge" /> <result column="tech_charge" property="techCharge" />
<result column="tech_charge_redpack" property="techChargeRedpack" />
<result column="tech_charge_order" property="techChargeOrder" />
<result column="bank_account" property="bankAccount" /> <result column="bank_account" property="bankAccount" />
<result column="bank_card_number" property="bankCardNumber" /> <result column="bank_card_number" property="bankCardNumber" />
<result column="bank_name" property="bankName" /> <result column="bank_name" property="bankName" />
...@@ -34,9 +36,10 @@ ...@@ -34,9 +36,10 @@
<sql id="Base_Column_List"> <sql id="Base_Column_List">
<!--@mbg.generated--> <!--@mbg.generated-->
id, user_id, agent_id, yeartime, monthtime, `month`, balance, opencard_balance, recharge_balance, id, user_id, agent_id, yeartime, monthtime, `month`, balance, opencard_balance, recharge_balance,
upgrade_balance, upgrade_super_balance, tax_balance, share_balance, zigousheng_balance, upgrade_balance, upgrade_super_balance, share_balance, tax_balance, zigousheng_balance,
pingtui_balance, tech_charge, bank_account, bank_card_number, bank_name, branch_name, pingtui_balance, tech_charge, tech_charge_redpack, tech_charge_order, bank_account,
reference_id, `status`, create_time, modify_time, created_at, updated_at, deleted_at bank_card_number, bank_name, branch_name, reference_id, `status`, create_time, modify_time,
created_at, updated_at, deleted_at
</sql> </sql>
<update id="updateBatch" parameterType="java.util.List"> <update id="updateBatch" parameterType="java.util.List">
<!--@mbg.generated--> <!--@mbg.generated-->
...@@ -92,14 +95,14 @@ ...@@ -92,14 +95,14 @@
when id = #{item.id} then #{item.upgradeSuperBalance} when id = #{item.id} then #{item.upgradeSuperBalance}
</foreach> </foreach>
</trim> </trim>
<trim prefix="tax_balance = case" suffix="end,"> <trim prefix="share_balance = case" suffix="end,">
<foreach collection="list" index="index" item="item"> <foreach collection="list" index="index" item="item">
when id = #{item.id} then #{item.taxBalance} when id = #{item.id} then #{item.shareBalance}
</foreach> </foreach>
</trim> </trim>
<trim prefix="share_balance = case" suffix="end,"> <trim prefix="tax_balance = case" suffix="end,">
<foreach collection="list" index="index" item="item"> <foreach collection="list" index="index" item="item">
when id = #{item.id} then #{item.shareBalance} when id = #{item.id} then #{item.taxBalance}
</foreach> </foreach>
</trim> </trim>
<trim prefix="zigousheng_balance = case" suffix="end,"> <trim prefix="zigousheng_balance = case" suffix="end,">
...@@ -117,6 +120,16 @@ ...@@ -117,6 +120,16 @@
when id = #{item.id} then #{item.techCharge} when id = #{item.id} then #{item.techCharge}
</foreach> </foreach>
</trim> </trim>
<trim prefix="tech_charge_redpack = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when id = #{item.id} then #{item.techChargeRedpack}
</foreach>
</trim>
<trim prefix="tech_charge_order = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when id = #{item.id} then #{item.techChargeOrder}
</foreach>
</trim>
<trim prefix="bank_account = case" suffix="end,"> <trim prefix="bank_account = case" suffix="end,">
<foreach collection="list" index="index" item="item"> <foreach collection="list" index="index" item="item">
when id = #{item.id} then #{item.bankAccount} when id = #{item.id} then #{item.bankAccount}
...@@ -182,18 +195,19 @@ ...@@ -182,18 +195,19 @@
<!--@mbg.generated--> <!--@mbg.generated-->
insert into agent_salary insert into agent_salary
(user_id, agent_id, yeartime, monthtime, `month`, balance, opencard_balance, recharge_balance, (user_id, agent_id, yeartime, monthtime, `month`, balance, opencard_balance, recharge_balance,
upgrade_balance, upgrade_super_balance, tax_balance, share_balance, zigousheng_balance, upgrade_balance, upgrade_super_balance, share_balance, tax_balance, zigousheng_balance,
pingtui_balance, tech_charge, bank_account, bank_card_number, bank_name, branch_name, pingtui_balance, tech_charge, tech_charge_redpack, tech_charge_order, bank_account,
reference_id, `status`, create_time, modify_time, created_at, updated_at, deleted_at bank_card_number, bank_name, branch_name, reference_id, `status`, create_time,
) modify_time, created_at, updated_at, deleted_at)
values values
<foreach collection="list" item="item" separator=","> <foreach collection="list" item="item" separator=",">
(#{item.userId}, #{item.agentId}, #{item.yeartime}, #{item.monthtime}, #{item.month}, (#{item.userId}, #{item.agentId}, #{item.yeartime}, #{item.monthtime}, #{item.month},
#{item.balance}, #{item.opencardBalance}, #{item.rechargeBalance}, #{item.upgradeBalance}, #{item.balance}, #{item.opencardBalance}, #{item.rechargeBalance}, #{item.upgradeBalance},
#{item.upgradeSuperBalance}, #{item.taxBalance}, #{item.shareBalance}, #{item.zigoushengBalance}, #{item.upgradeSuperBalance}, #{item.shareBalance}, #{item.taxBalance}, #{item.zigoushengBalance},
#{item.pingtuiBalance}, #{item.techCharge}, #{item.bankAccount}, #{item.bankCardNumber}, #{item.pingtuiBalance}, #{item.techCharge}, #{item.techChargeRedpack}, #{item.techChargeOrder},
#{item.bankName}, #{item.branchName}, #{item.referenceId}, #{item.status}, #{item.createTime}, #{item.bankAccount}, #{item.bankCardNumber}, #{item.bankName}, #{item.branchName},
#{item.modifyTime}, #{item.createdAt}, #{item.updatedAt}, #{item.deletedAt}) #{item.referenceId}, #{item.status}, #{item.createTime}, #{item.modifyTime}, #{item.createdAt},
#{item.updatedAt}, #{item.deletedAt})
</foreach> </foreach>
</insert> </insert>
<insert id="insertOrUpdate" keyColumn="id" keyProperty="id" parameterType="com.lanren.huhu.partner.domain.AgentSalary" useGeneratedKeys="true"> <insert id="insertOrUpdate" keyColumn="id" keyProperty="id" parameterType="com.lanren.huhu.partner.domain.AgentSalary" useGeneratedKeys="true">
...@@ -213,11 +227,13 @@ ...@@ -213,11 +227,13 @@
recharge_balance, recharge_balance,
upgrade_balance, upgrade_balance,
upgrade_super_balance, upgrade_super_balance,
tax_balance,
share_balance, share_balance,
tax_balance,
zigousheng_balance, zigousheng_balance,
pingtui_balance, pingtui_balance,
tech_charge, tech_charge,
tech_charge_redpack,
tech_charge_order,
bank_account, bank_account,
bank_card_number, bank_card_number,
bank_name, bank_name,
...@@ -245,11 +261,13 @@ ...@@ -245,11 +261,13 @@
#{rechargeBalance}, #{rechargeBalance},
#{upgradeBalance}, #{upgradeBalance},
#{upgradeSuperBalance}, #{upgradeSuperBalance},
#{taxBalance},
#{shareBalance}, #{shareBalance},
#{taxBalance},
#{zigoushengBalance}, #{zigoushengBalance},
#{pingtuiBalance}, #{pingtuiBalance},
#{techCharge}, #{techCharge},
#{techChargeRedpack},
#{techChargeOrder},
#{bankAccount}, #{bankAccount},
#{bankCardNumber}, #{bankCardNumber},
#{bankName}, #{bankName},
...@@ -277,11 +295,13 @@ ...@@ -277,11 +295,13 @@
recharge_balance = #{rechargeBalance}, recharge_balance = #{rechargeBalance},
upgrade_balance = #{upgradeBalance}, upgrade_balance = #{upgradeBalance},
upgrade_super_balance = #{upgradeSuperBalance}, upgrade_super_balance = #{upgradeSuperBalance},
tax_balance = #{taxBalance},
share_balance = #{shareBalance}, share_balance = #{shareBalance},
tax_balance = #{taxBalance},
zigousheng_balance = #{zigoushengBalance}, zigousheng_balance = #{zigoushengBalance},
pingtui_balance = #{pingtuiBalance}, pingtui_balance = #{pingtuiBalance},
tech_charge = #{techCharge}, tech_charge = #{techCharge},
tech_charge_redpack = #{techChargeRedpack},
tech_charge_order = #{techChargeOrder},
bank_account = #{bankAccount}, bank_account = #{bankAccount},
bank_card_number = #{bankCardNumber}, bank_card_number = #{bankCardNumber},
bank_name = #{bankName}, bank_name = #{bankName},
...@@ -332,12 +352,12 @@ ...@@ -332,12 +352,12 @@
<if test="upgradeSuperBalance != null"> <if test="upgradeSuperBalance != null">
upgrade_super_balance, upgrade_super_balance,
</if> </if>
<if test="taxBalance != null">
tax_balance,
</if>
<if test="shareBalance != null"> <if test="shareBalance != null">
share_balance, share_balance,
</if> </if>
<if test="taxBalance != null">
tax_balance,
</if>
<if test="zigoushengBalance != null"> <if test="zigoushengBalance != null">
zigousheng_balance, zigousheng_balance,
</if> </if>
...@@ -347,6 +367,12 @@ ...@@ -347,6 +367,12 @@
<if test="techCharge != null"> <if test="techCharge != null">
tech_charge, tech_charge,
</if> </if>
<if test="techChargeRedpack != null">
tech_charge_redpack,
</if>
<if test="techChargeOrder != null">
tech_charge_order,
</if>
<if test="bankAccount != null"> <if test="bankAccount != null">
bank_account, bank_account,
</if> </if>
...@@ -416,12 +442,12 @@ ...@@ -416,12 +442,12 @@
<if test="upgradeSuperBalance != null"> <if test="upgradeSuperBalance != null">
#{upgradeSuperBalance}, #{upgradeSuperBalance},
</if> </if>
<if test="taxBalance != null">
#{taxBalance},
</if>
<if test="shareBalance != null"> <if test="shareBalance != null">
#{shareBalance}, #{shareBalance},
</if> </if>
<if test="taxBalance != null">
#{taxBalance},
</if>
<if test="zigoushengBalance != null"> <if test="zigoushengBalance != null">
#{zigoushengBalance}, #{zigoushengBalance},
</if> </if>
...@@ -431,6 +457,12 @@ ...@@ -431,6 +457,12 @@
<if test="techCharge != null"> <if test="techCharge != null">
#{techCharge}, #{techCharge},
</if> </if>
<if test="techChargeRedpack != null">
#{techChargeRedpack},
</if>
<if test="techChargeOrder != null">
#{techChargeOrder},
</if>
<if test="bankAccount != null"> <if test="bankAccount != null">
#{bankAccount}, #{bankAccount},
</if> </if>
...@@ -500,12 +532,12 @@ ...@@ -500,12 +532,12 @@
<if test="upgradeSuperBalance != null"> <if test="upgradeSuperBalance != null">
upgrade_super_balance = #{upgradeSuperBalance}, upgrade_super_balance = #{upgradeSuperBalance},
</if> </if>
<if test="taxBalance != null">
tax_balance = #{taxBalance},
</if>
<if test="shareBalance != null"> <if test="shareBalance != null">
share_balance = #{shareBalance}, share_balance = #{shareBalance},
</if> </if>
<if test="taxBalance != null">
tax_balance = #{taxBalance},
</if>
<if test="zigoushengBalance != null"> <if test="zigoushengBalance != null">
zigousheng_balance = #{zigoushengBalance}, zigousheng_balance = #{zigoushengBalance},
</if> </if>
...@@ -515,6 +547,12 @@ ...@@ -515,6 +547,12 @@
<if test="techCharge != null"> <if test="techCharge != null">
tech_charge = #{techCharge}, tech_charge = #{techCharge},
</if> </if>
<if test="techChargeRedpack != null">
tech_charge_redpack = #{techChargeRedpack},
</if>
<if test="techChargeOrder != null">
tech_charge_order = #{techChargeOrder},
</if>
<if test="bankAccount != null"> <if test="bankAccount != null">
bank_account = #{bankAccount}, bank_account = #{bankAccount},
</if> </if>
......
...@@ -714,12 +714,25 @@ ...@@ -714,12 +714,25 @@
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 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_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 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 SUM(CASE WHEN reward_type IN (60) 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, ELSE 0 END) tech_charge_redpack,
SUM(CASE WHEN reward_type IN (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
ELSE 0 END) tech_charge_order,
0 wx_income, 0 wx_income,
0 wx_tax, 0 wx_tax,
0 bank_income, 0 bank_income,
0 bank_tax 0 bank_tax,
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 FROM partner_reward
WHERE recharge_time WHERE recharge_time
BETWEEN FROM_UNIXTIME(#{beginTs}) AND FROM_UNIXTIME(#{endTs}) BETWEEN FROM_UNIXTIME(#{beginTs}) AND FROM_UNIXTIME(#{endTs})
...@@ -736,13 +749,27 @@ ...@@ -736,13 +749,27 @@
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 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_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 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 SUM(CASE WHEN reward_type IN (60) 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_redpack,
SUM(CASE WHEN reward_type IN (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
ELSE 0 END ELSE 0 END
) tech_charge, ) tech_charge_order,
0 wx_income, 0 wx_income,
0 wx_tax, 0 wx_tax,
0 bank_income, 0 bank_income,
0 bank_tax 0 bank_tax,
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 FROM partner_reward
WHERE recharge_time WHERE recharge_time
BETWEEN FROM_UNIXTIME(#{beginTs}) AND FROM_UNIXTIME(#{endTs}) BETWEEN FROM_UNIXTIME(#{beginTs}) AND FROM_UNIXTIME(#{endTs})
...@@ -760,22 +787,23 @@ ...@@ -760,22 +787,23 @@
AND reward_status=100 AND reward_status=100
AND reward_type != 130 AND reward_type != 130
</update> </update>
<select id="getPartnerSummaryContentByUidAndTime" resultType="com.lanren.huhu.partner.model.PartnerSummaryContent"> <!--<select id="getPartnerSummaryContentByUidAndTime" resultType="com.lanren.huhu.partner.model.PartnerSummaryContent">-->
SELECT <!--SELECT-->
SUM(if(reward_type=60 AND is_show_on_client=1, commission_acount, 0)) AS cash, <!--SUM(if(reward_type=60 AND is_show_on_client=1, commission_acount, 0)) AS cash,-->
COUNT(reward_type=60 OR NULL) AS num, <!--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, <!--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, <!--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, <!--SUM(if(reward_type=80 AND is_show_on_client=1, commission_acount, 0)) AS icash,-->
COUNT(reward_type=80 OR NULL) AS inum, <!--COUNT(reward_type=80 OR NULL) AS inum,-->
SUM(if(reward_type=90 AND is_show_on_client=1, commission_acount, 0)) AS pcash, <!--SUM(if(reward_type=90 AND is_show_on_client=1, commission_acount, 0)) AS pcash,-->
COUNT(reward_type=90 OR NULL) AS pnum, <!--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, <!--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, <!--COUNT(reward_type IN(110, 120) OR NULL) AS snum,-->
SUM(if(is_show_on_client=0, commission_acount, 0)) AS rcash <!--SUM(if(is_show_on_client=0, commission_acount, 0)) AS rcash-->
FROM partner_reward <!--FROM partner_reward-->
WHERE recharge_time BETWEEN FROM_UNIXTIME(#{beginTs}) AND FROM_UNIXTIME(#{endTs}) <!--WHERE recharge_time BETWEEN FROM_UNIXTIME(#{beginTs}) AND FROM_UNIXTIME(#{endTs})-->
AND reward_status=120 <!--AND reward_status=120-->
AND user_id=#{userId} <!--AND reward_type != 130-->
</select> <!--AND user_id=#{userId}-->
<!--</select>-->
</mapper> </mapper>
\ No newline at end of file
...@@ -80,3 +80,131 @@ where type in (10,30) and self_role=30; ...@@ -80,3 +80,131 @@ where type in (10,30) and self_role=30;
ALTER TABLE `huhu`.`partner_reward` ALTER TABLE `huhu`.`partner_reward`
ADD COLUMN `tech_fee_rate` decimal(11, 6) NOT NULL DEFAULT 0 COMMENT '技术服务费扣除比例' AFTER `ratio_all`; ADD COLUMN `tech_fee_rate` decimal(11, 6) NOT NULL DEFAULT 0 COMMENT '技术服务费扣除比例' AFTER `ratio_all`;
ALTER TABLE `huhu`.`agent_salary`
MODIFY COLUMN `pingtui_balance` decimal(20, 6) NOT NULL DEFAULT 0 COMMENT '来自城市代理商的平推奖励' AFTER `zigousheng_balance`,
MODIFY COLUMN `tech_charge` decimal(20, 6) NOT NULL DEFAULT 0 COMMENT '技术服务费' AFTER `pingtui_balance`,
ADD COLUMN `tech_charge_redpack` decimal(20, 6) NOT NULL DEFAULT 0 COMMENT '红包技术服务费' AFTER `tech_charge`,
ADD COLUMN `tech_charge_order` decimal(20, 6) NOT NULL DEFAULT 0 COMMENT '佣金技术服务费' AFTER `tech_charge_redpack`;
ALTER TABLE `huhu`.`agent_income_summary`
MODIFY COLUMN `income` decimal(20, 6) NOT NULL DEFAULT 0.0000 COMMENT '结算金额' AFTER `monthtime`;
结算后核对SQL:
代理商:
1. agent_account_log
select
a.agent_id,
a.结算前余额,
a.月结发钱,
a.平台技术服务费,
a.代扣个人所得税,
a.结算前余额+a.月结发钱+a.平台技术服务费+a.代扣个人所得税 '预估结算后余额',
b.changed_amount '显示结算后余额'
from
(select
agent_id,
max(case when pay_remark='2019-07月结发钱' then REPLACE(substr(`snapshot`,INSTR(`snapshot`,'balance=')+8),')','') else '0' end) '结算前余额',
sum(case when pay_remark='2019-07月结发钱' then change_num else 0 end) '月结发钱',
sum(case when pay_remark='2019-07平台技术服务费' then change_num else 0 end) '平台技术服务费',
sum(case when pay_remark='2019-07代扣个人所得税' then change_num else 0 end) '代扣个人所得税',
max(id) m_id
from agent_account_log a
where yeartime=2019 and monthtime=8 and daytime=21
group by 1
) a
join agent_account_log b on a.m_id=b.id
where round(a.结算前余额+a.月结发钱+a.平台技术服务费+a.代扣个人所得税,2)
<>
round(b.changed_amount ,2);
2. agent_income_summary
select
income,
JSON_EXTRACT(content, '$.cashPlace')+
JSON_EXTRACT(content, '$.cashOpenCard')+
JSON_EXTRACT(content, '$.cashRecharge')+
JSON_EXTRACT(content, '$.cashUpgradePartner') 'income2',
content
from agent_income_summary
where yeartime=2019 and monthtime=7
and round(income,1)
<>
round(JSON_EXTRACT(content, '$.cashPlace')+JSON_EXTRACT(content, '$.cashOpenCard')+JSON_EXTRACT(content, '$.cashRecharge')+JSON_EXTRACT(content, '$.cashUpgradePartner'),1)
3. agent_salary
select
agent_id,
balance,
recharge_balance 'redpack_balance',
zigousheng_balance+share_balance 'order_balance',
opencard_balance+upgrade_balance+upgrade_super_balance+pingtui_balance 'others',
balance-zigousheng_balance-share_balance-tech_charge_redpack 'tax_base',
case when (balance-zigousheng_balance-share_balance-tech_charge_redpack-800)*0.1 > 0 then (balance-zigousheng_balance-share_balance-tech_charge_redpack-800)*0.1 else 0 end 'tax',
tax_balance
from agent_salary
where yeartime=2019 and monthtime=7
and case when (balance-zigousheng_balance-share_balance-tech_charge_redpack-800)*0.1 > 0 then (balance-zigousheng_balance-share_balance-tech_charge_redpack-800)*0.1 else 0 end
<>
tax_balance
4. agent_account
select
agent_id,
balance
from agent_account
合伙人:
select
a.user_id,
c.wx_free_balance 结算前余额,
a.月结发钱,
a.平台技术服务费,
a.代扣个人所得税,
c.wx_free_balance+a.月结发钱+a.平台技术服务费+a.代扣个人所得税 '预估结算后余额',
b.changed_amount '显示结算后余额'
from
(select
user_id,
max(REPLACE(substr(`snapshot`,INSTR(`snapshot`,'wxFreeBalance=')+14),')','')),
sum(case when pay_remark='2019-07月结发钱' then change_num else 0 end) '月结发钱',
sum(case when pay_remark='2019-07平台技术服务费' then change_num else 0 end) '平台技术服务费',
sum(case when pay_remark='2019-07代扣个人所得税' then change_num else 0 end) '代扣个人所得税',
max(id) m_id
from partner_account_log a
where yeartime=2019 and monthtime=8 and daytime=21
group by 1
) a
join partner_account_log b on a.m_id=b.id
join partner_account_copy1 c on a.user_id=c.user_id
where round(c.wx_free_balance+a.月结发钱+a.平台技术服务费+a.代扣个人所得税,2)
=
round(b.changed_amount ,2);
select
income,
JSON_EXTRACT(content, '$.cash')+
JSON_EXTRACT(content, '$.upCash')+
JSON_EXTRACT(content, '$.icash')+
JSON_EXTRACT(content, '$.pcash')+
JSON_EXTRACT(content, '$.scash')+
JSON_EXTRACT(content, '$.rcash')
'income2'
from partner_income_summary
where yeartime=2019 and monthtime=7
and round(income,1)
<>
round(JSON_EXTRACT(content, '$.cash')+JSON_EXTRACT(content, '$.upCash')+JSON_EXTRACT(content, '$.icash')+JSON_EXTRACT(content, '$.pcash')+JSON_EXTRACT(content, '$.scash')+JSON_EXTRACT(content, '$.rcash'),1)
select
user_id,
wx_free_balance
from partner_account
\ 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