From 883ff335457f304a5e694998964c6af89f2e3b2b Mon Sep 17 00:00:00 2001 From: chengkun <2500338766@qq.com> Date: Tue, 21 Jun 2022 13:36:42 +0800 Subject: [PATCH] =?UTF-8?q?feature-img-1.0:=E4=BC=98=E5=8C=96=E5=AE=A1?= =?UTF-8?q?=E6=A0=B8=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bnyer/img/dto/ProfitVerifyOrderDto.java | 2 +- .../img/dto/ProfitVerifyOrderInsertDto.java | 3 + .../bnyer/img/mapper/CreatorProfitMapper.java | 10 +++ .../img/service/CreatorProfitService.java | 3 +- .../impl/CreatorProfitServiceImpl.java | 13 ++- .../impl/ProfitVerifyOrderServiceImpl.java | 83 +++++++------------ .../bnyer/img/mapper/CreatorProfitMapper.xml | 8 ++ 7 files changed, 58 insertions(+), 64 deletions(-) diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/ProfitVerifyOrderDto.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/ProfitVerifyOrderDto.java index 9d15085..9594353 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/ProfitVerifyOrderDto.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/ProfitVerifyOrderDto.java @@ -14,7 +14,7 @@ import java.math.BigDecimal; @Getter @Setter @ApiModel("收益审核订单审核接收类") -public class ProfitVerifyOrderDto implements Serializable { +public class ProfitVerifyOrderDto implements Serializable { @NotNull(message = "主键id") @ApiModelProperty(value="主键id") diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/ProfitVerifyOrderInsertDto.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/ProfitVerifyOrderInsertDto.java index 92900d0..67a4f85 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/ProfitVerifyOrderInsertDto.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/ProfitVerifyOrderInsertDto.java @@ -22,4 +22,7 @@ public class ProfitVerifyOrderInsertDto implements Serializable { @ApiModelProperty(value="平台(0->抖音;1->快手)") private String platform; + + @ApiModelProperty(value="应用") + private String appType; } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/CreatorProfitMapper.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/CreatorProfitMapper.java index 1404d11..c18dff6 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/CreatorProfitMapper.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/CreatorProfitMapper.java @@ -117,4 +117,14 @@ public interface CreatorProfitMapper extends BaseMapper { * @param list - */ void batchInsertInviteProfit(@Param("list") List list); + + /** + * 查询所有指定平台类型待入账信息 + * @param platform 平台 + * @param appType 应用 + * @param type 收益类型 + * @param date 日期 + * @return - + */ + List queryPreProfit(@Param("platform") String platform,@Param("appType") String appType,@Param("type") String type,@Param("date") String date); } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/CreatorProfitService.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/CreatorProfitService.java index 44d9392..2ef31be 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/CreatorProfitService.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/CreatorProfitService.java @@ -158,7 +158,8 @@ public interface CreatorProfitService { * @param platform 平台 * @param appType 应用 * @param type 收益类型 + * @param date 日期 * @return - */ - List queryPreProfit(String platform,String appType,String type); + List queryPreProfit(String platform,String appType,String type,String date); } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/CreatorProfitServiceImpl.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/CreatorProfitServiceImpl.java index d621ca8..dbe49de 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/CreatorProfitServiceImpl.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/CreatorProfitServiceImpl.java @@ -60,6 +60,8 @@ public class CreatorProfitServiceImpl implements CreatorProfitService { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); long times = System.currentTimeMillis(); String date = format.format(times); + //缓存中下载总数+1 + tiktokImgService.writeDownloadTotalNum(creatorProfit.getAppType(),creatorProfit.getPlatform()); //检查收益表是否存在广告记录,存在则更新次数 boolean b = this.checkCreatorProfitExist(creatorProfit.getCreatorId(),creatorProfit.getImgId(),creatorProfit.getAppType(),creatorProfit.getPlatform(),"0",date); if(b){ @@ -101,6 +103,8 @@ public class CreatorProfitServiceImpl implements CreatorProfitService { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); long times = System.currentTimeMillis(); String date = format.format(times); + //缓存中下载总数+1 + tiktokImgService.writeDownloadTotalNum(creatorProfit.getAppType(),creatorProfit.getPlatform()); //查询邀请表 LambdaQueryWrapper wrapper = new LambdaQueryWrapper(); wrapper.eq(InviteLog::getInvitedCreatorId, creatorProfit.getCreatorId()); @@ -293,12 +297,7 @@ public class CreatorProfitServiceImpl implements CreatorProfitService { } @Override - public List queryPreProfit(String platform, String appType, String type) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(CreatorProfit::getPlatform, platform); - wrapper.eq(CreatorProfit::getAppType, appType); - wrapper.eq(CreatorProfit::getType, type); - wrapper.eq(CreatorProfit::getStatus, "0"); - return creatorProfitMapper.selectList(wrapper); + public List queryPreProfit(String platform, String appType, String type, String date) { + return creatorProfitMapper.queryPreProfit(platform, appType, type, date); } } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/ProfitVerifyOrderServiceImpl.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/ProfitVerifyOrderServiceImpl.java index f8bae66..d2859da 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/ProfitVerifyOrderServiceImpl.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/ProfitVerifyOrderServiceImpl.java @@ -44,6 +44,7 @@ public class ProfitVerifyOrderServiceImpl implements ProfitVerifyOrderService { order.setAmt(params.getAmt()); order.setAdminId(params.getAdminId()); order.setPlatform(params.getPlatform()); + order.setAppType(params.getAppType()); order.setCreateTime(new Date()); order.setVerifyStatus("0"); return profitVerifyOrderMapper.insert(order); @@ -98,78 +99,50 @@ public class ProfitVerifyOrderServiceImpl implements ProfitVerifyOrderService { //昨日总收益的10%作为邀请收益 BigDecimal yesterdayTotalInviteProfit = params.getAmt().multiply(BigDecimal.valueOf(0.1)); //获取昨日日期 - Date today = new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24); + Date yesterday = new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); - String date = simpleDateFormat.format(today); + String date = simpleDateFormat.format(yesterday); String tiktokKey = RedisKeyConstant.TIKTOK_IMG_TOTAL_DOWNLOAD_NUM_KEY + date; String hashKey = params.getAppType()+":"+ params.getPlatform(); - if(params.getPlatform().equals(ProfitOrderConstant.TIKTOK) && params.getAppType().equals(ProfitOrderConstant.BNYER_IMG)){ - if(redisService.hasHashKey(tiktokKey, hashKey)){ - //存在昨日平台下载数量 - Integer platformDownloadNum = (Integer) redisService.getCacheMapValue(tiktokKey, hashKey); - //广告单价 - BigDecimal adPrice = yesterdayTotalAdProfit.divide(BigDecimal.valueOf(platformDownloadNum), 3, BigDecimal.ROUND_DOWN); - //邀请单价 - BigDecimal invitePrice = yesterdayTotalInviteProfit.divide(BigDecimal.valueOf(platformDownloadNum), 3, BigDecimal.ROUND_DOWN); - //查出昨日对应平台的所有广告待入账信息 - List adProfits = creatorProfitService.queryPreProfit(params.getPlatform(), params.getAppType(), "0"); - if(adProfits.size() > 0){ - for (CreatorProfit adProfit : adProfits) { - //设置广告收益 - adProfit.setProfit(BigDecimal.valueOf(adProfit.getDownloadNum()).multiply(adPrice)); - adProfit.setConfirmStatus("0"); - adProfit.setIncomeTime(new Date()); - adProfit.setUpdateTime(new Date()); + if(redisService.hasHashKey(tiktokKey, hashKey)){ + //存在昨日平台下载数量 + Integer platformDownloadNum = redisService.getCacheMapValue(tiktokKey, hashKey); + //广告单价 + BigDecimal adPrice = yesterdayTotalAdProfit.divide(BigDecimal.valueOf(platformDownloadNum), 3, BigDecimal.ROUND_DOWN); + //邀请单价 + BigDecimal invitePrice = yesterdayTotalInviteProfit.divide(BigDecimal.valueOf(platformDownloadNum), 3, BigDecimal.ROUND_DOWN); + //查出昨日对应平台的所有广告待入账信息 + List adProfits = creatorProfitService.queryPreProfit(params.getPlatform(), params.getAppType(), "0",date); + if(adProfits.size() > 0){ + for (CreatorProfit adProfit : adProfits) { + //设置广告收益 + adProfit.setProfit(BigDecimal.valueOf(adProfit.getDownloadNum()).multiply(adPrice)); + adProfit.setConfirmStatus("0"); + adProfit.setIncomeTime(new Date()); + adProfit.setStatus("1"); + creatorProfitService.update(adProfit); } } //查出昨日对应平台的所有邀请待入账信息 - List inviteProfits = creatorProfitService.queryPreProfit(params.getPlatform(), params.getAppType(), "1"); + List inviteProfits = creatorProfitService.queryPreProfit(params.getPlatform(), params.getAppType(), "1",date); if(inviteProfits.size() > 0){ //设置邀请收益 for (CreatorProfit inviteProfit : inviteProfits) { inviteProfit.setProfit(BigDecimal.valueOf(inviteProfit.getDownloadNum()).multiply(invitePrice)); inviteProfit.setConfirmStatus("0"); inviteProfit.setIncomeTime(new Date()); - inviteProfit.setUpdateTime(new Date()); + inviteProfit.setStatus("1"); + creatorProfitService.update(inviteProfit); } + //设置完结算收益,删除数量缓存 + redisService.deleteHashKey(tiktokKey,hashKey); + //TODO 逻辑待优化 + return true; } } - }else if(params.getPlatform().equals(ProfitOrderConstant.FAST_HAND) && params.getAppType().equals(ProfitOrderConstant.BNYER_IMG)){ - //昨日快手平台总下载量 - if(redisService.hasHashKey(tiktokKey, hashKey)){ - //存在昨日平台下载数量 - Integer platformDownloadNum = (Integer) redisService.getCacheMapValue(tiktokKey, hashKey); - //广告单价 - BigDecimal adPrice = yesterdayTotalAdProfit.divide(BigDecimal.valueOf(platformDownloadNum), 3, BigDecimal.ROUND_DOWN); - //邀请单价 - BigDecimal invitePrice = yesterdayTotalInviteProfit.divide(BigDecimal.valueOf(platformDownloadNum), 3, BigDecimal.ROUND_DOWN); - //查出昨日对应平台的所有广告待入账信息 - List adProfits = creatorProfitService.queryPreProfit(params.getPlatform(), params.getAppType(), "0"); - if(adProfits.size() > 0){ - for (CreatorProfit adProfit : adProfits) { - //设置广告收益 - adProfit.setProfit(BigDecimal.valueOf(adProfit.getDownloadNum()).multiply(adPrice)); - adProfit.setConfirmStatus("0"); - adProfit.setIncomeTime(new Date()); - adProfit.setUpdateTime(new Date()); - } - } - //查出昨日对应平台的所有邀请待入账信息 - List inviteProfits = creatorProfitService.queryPreProfit(params.getPlatform(), params.getAppType(), "1"); - if(inviteProfits.size() > 0){ - //设置邀请收益 - for (CreatorProfit inviteProfit : inviteProfits) { - inviteProfit.setProfit(BigDecimal.valueOf(inviteProfit.getDownloadNum()).multiply(invitePrice)); - inviteProfit.setConfirmStatus("0"); - inviteProfit.setIncomeTime(new Date()); - inviteProfit.setUpdateTime(new Date()); - } - } - } - } - //TODO 待补充完善结算方法 }else{ //审核不通过,流程结束 + return false; } return false; } diff --git a/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/CreatorProfitMapper.xml b/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/CreatorProfitMapper.xml index b6513e0..32708ca 100644 --- a/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/CreatorProfitMapper.xml +++ b/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/CreatorProfitMapper.xml @@ -152,4 +152,12 @@ #{item.platform},#{item.appType}) + +