Browse Source

feature1.0.0-img: 优化艺术家收益方法

master
penny 4 years ago
parent
commit
1d796b6050
  1. 5
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/constants/RedisKeyConstant.java
  2. 42
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/CreatorMiniController.java
  3. 81
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/ProfitVerifyOrderController.java
  4. 12
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokMiniController.java
  5. 7
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/CreatorProfit.java
  6. 47
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorProfitInviteInsertDto.java
  7. 4
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorProfitUpdateDto.java
  8. 24
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/CreatorProfitMapper.java
  9. 63
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/CreatorProfitService.java
  10. 9
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/TiktokImgService.java
  11. 161
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/CreatorProfitServiceImpl.java
  12. 10
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokImgServiceImpl.java
  13. 69
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorIncomeProfitVo.java
  14. 50
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorPreAdProfitVo.java
  15. 41
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorPreInviteProfitVo.java
  16. 59
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorTransIntoProfitVo.java
  17. 26
      bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/CreatorProfitMapper.xml

5
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/constants/RedisKeyConstant.java

@ -47,11 +47,6 @@ public class RedisKeyConstant {
*/ */
public static final String WECHAT_CREATOR_LOGIN_KEY = "bnyer.img.wechat.creator:"; public static final String WECHAT_CREATOR_LOGIN_KEY = "bnyer.img.wechat.creator:";
/**
* 微信小程序艺术家图片下载键
*/
public static final String WECHAT_CREATOR_DOWNLOAD_KEY = "bnyer.img.download.creator:";
/** /**
* 微信小程序艺术家邀请键 * 微信小程序艺术家邀请键
*/ */

42
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/CreatorMiniController.java

@ -193,12 +193,12 @@ public class CreatorMiniController extends BaseController {
//@TokenCheck //@TokenCheck
@ApiOperation(value="新增艺术家即将入账邀请收益缓存") // @ApiOperation(value="新增艺术家即将入账邀请收益缓存")
@PostMapping(value = "/insertPreInviteProfit") // @PostMapping(value = "/insertPreInviteProfit")
public AjaxResult insertPreInviteProfit(@Validated @RequestBody @ApiParam("即将入账邀请对象") CreatorProfitInviteInsertDto dto){ // public AjaxResult insertPreInviteProfit(@Validated @RequestBody @ApiParam("即将入账邀请对象") CreatorProfitInviteInsertDto dto){
log.info("【艺术家小程序】新增艺术家即将入账邀请收益缓存参数为:{}", JSON.toJSONString(dto)); // log.info("【艺术家小程序】新增艺术家即将入账邀请收益缓存参数为:{}", JSON.toJSONString(dto));
return AjaxResult.success(creatorProfitService.insertPreInviteProfit(dto)); // return AjaxResult.success(creatorProfitService.insertPreInviteProfit(dto));
} // }
//@TokenCheck //@TokenCheck
@ApiOperation(value="艺术家手动确认收益") @ApiOperation(value="艺术家手动确认收益")
@ -208,20 +208,20 @@ public class CreatorMiniController extends BaseController {
return AjaxResult.success(creatorProfitService.handleUpdateConfirmType(dto.getId(), dto.getCreatorId())); return AjaxResult.success(creatorProfitService.handleUpdateConfirmType(dto.getId(), dto.getCreatorId()));
} }
//@TokenCheck // //@TokenCheck
@ApiOperation(value="查询指定艺术家当天即将入账广告收益列表") // @ApiOperation(value="查询指定艺术家当天即将入账广告收益列表")
@GetMapping(value = "/getPreAdProfitList/{creatorId}") // @GetMapping(value = "/getPreAdProfitList/{creatorId}")
public AjaxResult getPreAdProfitList(@PathVariable @ApiParam("艺术家id") Long creatorId){ // public AjaxResult getPreAdProfitList(@PathVariable @ApiParam("艺术家id") Long creatorId){
log.info("【艺术家小程序】查询指定艺术家id【{}】当天即将入账广告收益列表",creatorId); // log.info("【艺术家小程序】查询指定艺术家id【{}】当天即将入账广告收益列表",creatorId);
return AjaxResult.success(creatorProfitService.queryFrontPreAdProfitList(creatorId)); // return AjaxResult.success(creatorProfitService.queryFrontPreAdProfitList(creatorId));
} // }
//
//@TokenCheck // //@TokenCheck
@ApiOperation(value="查询指定艺术家当天即将入账邀请收益列表") // @ApiOperation(value="查询指定艺术家当天即将入账邀请收益列表")
@GetMapping(value = "/getPreInviteProfitList/{creatorId}") // @GetMapping(value = "/getPreInviteProfitList/{creatorId}")
public AjaxResult getPreInviteProfitList(@PathVariable @ApiParam("艺术家id") Long creatorId){ // public AjaxResult getPreInviteProfitList(@PathVariable @ApiParam("艺术家id") Long creatorId){
log.info("【艺术家小程序】查询指定艺术家id【{}】当天即将入账邀请收益列表",creatorId); // log.info("【艺术家小程序】查询指定艺术家id【{}】当天即将入账邀请收益列表",creatorId);
return AjaxResult.success(creatorProfitService.queryFrontPreInviteProfitList(creatorId)); // return AjaxResult.success(creatorProfitService.queryFrontPreInviteProfitList(creatorId));
} // }
} }

81
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/ProfitVerifyOrderController.java

@ -0,0 +1,81 @@
package com.bnyer.img.controller;
import com.alibaba.fastjson.JSON;
import com.bnyer.common.core.web.controller.BaseController;
import com.bnyer.common.core.web.domain.AjaxResult;
import com.bnyer.common.core.web.page.TableDataInfo;
import com.bnyer.img.domain.ProfitVerifyOrder;
import com.bnyer.img.dto.ProfitVerifyOrderDto;
import com.bnyer.img.dto.ProfitVerifyOrderInsertDto;
import com.bnyer.img.dto.ProfitVerifyOrderPageDto;
import com.bnyer.img.dto.ProfitVerifyOrderUpdateDto;
import com.bnyer.img.service.ProfitVerifyOrderService;
import com.github.pagehelper.PageHelper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Api(value = "【图文平台】收益审核单接口",tags = "【图文平台】收益审核单接口")
@RestController
@RequestMapping("/img/profitVerifyOrder")
@Slf4j
public class ProfitVerifyOrderController extends BaseController {
@Autowired
private ProfitVerifyOrderService profitVerifyOrderService;
//@RequiresPermissions("system:config:list")
@ApiOperation(value="查询收益审核单分页")
@PostMapping("/page")
public TableDataInfo pageProfitVerifyOrder(@RequestBody @ApiParam("分页对象") ProfitVerifyOrderPageDto dto){
PageHelper.startPage(dto.getPageNum(), dto.getPageSize());
List<ProfitVerifyOrder> profitVerifyOrders = profitVerifyOrderService.queryPage(dto);
return getDataTable(profitVerifyOrders);
}
//@RequiresPermissions("system:config:list")
@ApiOperation(value="新增收益审核单")
@PostMapping(value = "/insert")
public AjaxResult insertProfitVerifyOrder(@Validated @RequestBody @ApiParam("收益审核单对象") ProfitVerifyOrderInsertDto dto){
log.debug("【图文平台后台】新增收益审核单参数为:{}", JSON.toJSONString(dto));
return AjaxResult.success(profitVerifyOrderService.insert(dto));
}
//@RequiresPermissions("system:config:list")
@ApiOperation(value="修改收益审核单")
@PostMapping(value = "/update")
public AjaxResult updateProfitVerifyOrder(@Validated @RequestBody @ApiParam("收益审核单对象") ProfitVerifyOrderUpdateDto dto){
log.debug("【图文平台后台】修改收益审核单参数为:{}", JSON.toJSONString(dto));
return AjaxResult.success(profitVerifyOrderService.update(dto));
}
//@RequiresPermissions("system:config:list")
@ApiOperation(value="删除收益审核单")
@DeleteMapping(value = "/delete/{ids}")
public AjaxResult deleteProfitVerifyOrder(@PathVariable @ApiParam("主键ids") List<Long> ids){
log.debug("【图文平台后台】删除收益审核单参数为:{}", JSON.toJSONString(ids));
return AjaxResult.success(profitVerifyOrderService.delete(ids));
}
//@RequiresPermissions("system:config:list")
@ApiOperation(value="查询收益审核单详情")
@GetMapping(value = "/details/{id}")
public AjaxResult detailsProfitVerifyOrder(@PathVariable @ApiParam("主键id") Long id){
log.debug("【图文平台后台】查询收益审核单详情参数为:{}", id);
return AjaxResult.success(profitVerifyOrderService.queryDetails(id));
}
//@RequiresPermissions("system:config:list")
@ApiOperation(value="审核")
@PostMapping(value = "/verify")
public AjaxResult verify(@Validated @RequestBody @ApiParam("收益审核单对象") ProfitVerifyOrderDto dto){
log.debug("【图文平台后台】审核参数为:{}", JSON.toJSONString(dto));
return AjaxResult.success(profitVerifyOrderService.verify(dto));
}
}

12
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokMiniController.java

@ -186,10 +186,10 @@ public class TiktokMiniController extends BaseController {
} }
//@TokenCheck //@TokenCheck
@ApiOperation(value="新增艺术家即将入账广告收益缓存") // @ApiOperation(value="新增艺术家即将入账广告收益缓存")
@PostMapping(value = "/insertPreAdProfit") // @PostMapping(value = "/insertPreAdProfit")
public AjaxResult insertPreAdProfit(@Validated @RequestBody @ApiParam("即将入账广告对象") CreatorProfitAdInsertDto dto){ // public AjaxResult insertPreAdProfit(@Validated @RequestBody @ApiParam("即将入账广告对象") CreatorProfitAdInsertDto dto){
log.info("【抖音图文小程序】新增艺术家即将入账收益缓存参数为:{}", JSON.toJSONString(dto)); // log.info("【抖音图文小程序】新增艺术家即将入账收益缓存参数为:{}", JSON.toJSONString(dto));
return AjaxResult.success(creatorProfitService.insertPreAdProfit(dto)); // return AjaxResult.success(creatorProfitService.insertPreAdProfit(dto));
} // }
} }

7
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/CreatorProfit.java

@ -117,13 +117,6 @@ public class CreatorProfit extends BaseDomain {
@ApiModelProperty(value="下载次数") @ApiModelProperty(value="下载次数")
private Integer downloadNum; private Integer downloadNum;
/**
* 浏览次数
*/
@TableField(value = "view_num")
@ApiModelProperty(value="浏览次数")
private Integer viewNum;
/** /**
* 平台结算收益时间 * 平台结算收益时间
*/ */

47
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorProfitInviteInsertDto.java

@ -1,47 +0,0 @@
package com.bnyer.img.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
@Getter
@Setter
@ApiModel("艺术家新增邀请收益接收类")
public class CreatorProfitInviteInsertDto implements Serializable {
@NotNull(message = "艺术家id不能为空!")
@ApiModelProperty(value="艺术家id")
private Long creatorId;
@NotBlank(message = "被邀请人搜索码不能为空!")
@ApiModelProperty(value="被邀请人搜索码")
private String scanCode;
@NotBlank(message = "图片地址不能为空!")
@ApiModelProperty(value="图片地址")
private String headUrl;
@NotBlank(message = "应用类型不能为空!")
@ApiModelProperty(value="应用类型(0->bnyer壁纸)")
private String appType;
@NotBlank(message = "收益类型不能为空!")
@ApiModelProperty(value="收益类型(0->广告浏览;1->邀请;2->会员)")
private String type;
@NotBlank(message = "收益状态不能为空!")
@ApiModelProperty(value="收益状态(0->即将到账;1->已到账;2->转入钱包)")
private String status;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value="创建时间")
private Date createTime;
}

4
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorProfitUpdateDto.java

@ -68,10 +68,6 @@ public class CreatorProfitUpdateDto implements Serializable {
@ApiModelProperty(value="下载次数") @ApiModelProperty(value="下载次数")
private Integer downloadNum; private Integer downloadNum;
@NotNull(message = "浏览次数不能为空!")
@ApiModelProperty(value="浏览次数")
private Integer viewNum;
public CreatorProfit extractParam(){ public CreatorProfit extractParam(){
CreatorProfit creatorProfit = new CreatorProfit(); CreatorProfit creatorProfit = new CreatorProfit();
BeanUtils.copyProperties(this,creatorProfit); BeanUtils.copyProperties(this,creatorProfit);

24
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/CreatorProfitMapper.java

@ -2,8 +2,6 @@ package com.bnyer.img.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.bnyer.img.domain.CreatorProfit; import com.bnyer.img.domain.CreatorProfit;
import com.bnyer.img.vo.CreatorIncomeProfitVo;
import com.bnyer.img.vo.CreatorTransIntoProfitVo;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -16,23 +14,21 @@ import java.util.List;
@Mapper @Mapper
public interface CreatorProfitMapper extends BaseMapper<CreatorProfit> { public interface CreatorProfitMapper extends BaseMapper<CreatorProfit> {
/** /**
* 小程序艺术家查询昨日入场收益 * 批量系统修改确认收益状态
* @param creatorId 艺术家id * @param params id列表
* @return -
*/ */
CreatorIncomeProfitVo queryFrontIncomeProfit(@Param("creatorId") Long creatorId); void batchUpdate(@Param("params") List<Long> params);
/** /**
* 小程序艺术家查询转入钱包收益 * 更新下载数量
* @param creatorId 艺术家id * @param creatorId 艺术家id
* @param imgId 图片Id
* @param appType 应用
* @param platform 平台
* @param date 日期
* @return - * @return -
*/ */
CreatorTransIntoProfitVo queryFrontTransIntoProfit(@Param("creatorId")Long creatorId); int updateDownloadNum(@Param("creatorId") Long creatorId,@Param("imgId") Long imgId,@Param("appType") String appType,@Param("platform") String platform,@Param("date") String date);
/**
* 批量系统修改确认收益状态
* @param params id列表
*/
void batchUpdate(@Param("params") List<Long> params);
} }

63
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/CreatorProfitService.java

@ -1,10 +1,8 @@
package com.bnyer.img.service; package com.bnyer.img.service;
import com.bnyer.img.domain.CreatorProfit; import com.bnyer.img.domain.CreatorProfit;
import com.bnyer.img.dto.CreatorProfitAdInsertDto;
import com.bnyer.img.dto.CreatorProfitInviteInsertDto;
import com.bnyer.img.dto.CreatorProfitPageDto; import com.bnyer.img.dto.CreatorProfitPageDto;
import com.bnyer.img.vo.*; import com.bnyer.img.vo.ProfitVo;
import java.util.List; import java.util.List;
@ -14,34 +12,35 @@ import java.util.List;
*/ */
public interface CreatorProfitService { public interface CreatorProfitService {
/**
* 新增即将入账广告收益
* @param params 收益参数
* @return -
*/
boolean insertPreAdProfit(CreatorProfitAdInsertDto params);
/** /**
* 新增即将入账邀请收益 * 判断当天是否存在结算收益订单数据
* @param params * @param creatorId 艺术家id
* @return * @param imgId 图片id
* @param platform 平台
* @param appType 应用
* @param date 日期(年月日)
* @return -
*/ */
boolean insertPreInviteProfit(CreatorProfitInviteInsertDto params); boolean checkCreatorProfitExist(Long creatorId,Long imgId,String appType,String platform,String date);
/** /**
* 新增广告收益结算 * 新增广告收益结算
* @param creatorId 艺术家id * @param creatorProfit 广告收益参数
* @return - * @return -
*/ */
int insertAd(Long creatorId); int insertCreatorProfit(CreatorProfit creatorProfit);
/** /**
* 新增邀请收益结算 * 更新指定日期图片下载数量
* @param creatorId 艺术家id * @param creatorId 艺术家id
* @param imgId 图片id
* @param appType 应用
* @param platform 平台
* @param date 日期
* @return - * @return -
*/ */
int insertInvite(Long creatorId); int updateCreatorProfitDownloadNum(Long creatorId,Long imgId,String appType,String platform,String date);
/** /**
* 修改结算收益 * 修改结算收益
@ -92,33 +91,6 @@ public interface CreatorProfitService {
*/ */
void batchUpdateConfirmType(); void batchUpdateConfirmType();
/**
* 小程序查询当天即将入账广告收益列表
* @param creatorId 艺术家id
* @return -
*/
List<CreatorPreAdProfitVo> queryFrontPreAdProfitList(Long creatorId);
/**
* 小程序查询当天即将入账被邀请收益列表
* @param creatorId 艺术家id
* @return -
*/
List<CreatorPreInviteProfitVo> queryFrontPreInviteProfitList(Long creatorId);
/**
* 小程序查询昨日已入账收益
* @param creatorId 艺术家id
* @return -
*/
CreatorIncomeProfitVo queryFrontIncomeProfit(Long creatorId);
/**
* 小程序查询已转入钱包收益
* @param creatorId 艺术家id
* @return -
*/
CreatorTransIntoProfitVo queryFrontTransIntoProfit(Long creatorId);
/** /**
* 小程序查询收益信息 * 小程序查询收益信息
@ -126,5 +98,4 @@ public interface CreatorProfitService {
* @return - * @return -
*/ */
ProfitVo queryFrontProfitInfo(Long creatorId); ProfitVo queryFrontProfitInfo(Long creatorId);
} }

9
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/TiktokImgService.java

@ -90,15 +90,6 @@ public interface TiktokImgService {
*/ */
int changeHot(Long id,String status); int changeHot(Long id,String status);
/**
* 图片下载数量写入缓存
* @param creatorId 艺术家id
* @param appType 应用
* @param imgId 图片id
* @param platform 平台
*/
void writeDownloadNum(Long creatorId,String appType,Long imgId,String platform);
/** /**
* 图片下载总数量写入缓存 * 图片下载总数量写入缓存
* @param appType 应用 * @param appType 应用

161
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/CreatorProfitServiceImpl.java

@ -1,30 +1,23 @@
package com.bnyer.img.service.impl; package com.bnyer.img.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.bnyer.common.core.utils.StringUtils; import com.bnyer.common.core.utils.StringUtils;
import com.bnyer.common.redis.service.RedisService; import com.bnyer.common.redis.service.RedisService;
import com.bnyer.img.constants.RedisKeyConstant;
import com.bnyer.img.domain.CreatorProfit; import com.bnyer.img.domain.CreatorProfit;
import com.bnyer.img.dto.CreatorProfitAdInsertDto;
import com.bnyer.img.dto.CreatorProfitInviteInsertDto;
import com.bnyer.img.dto.CreatorProfitPageDto; import com.bnyer.img.dto.CreatorProfitPageDto;
import com.bnyer.img.mapper.CreatorProfitMapper; import com.bnyer.img.mapper.CreatorProfitMapper;
import com.bnyer.img.service.CreatorProfitService; import com.bnyer.img.service.CreatorProfitService;
import com.bnyer.img.service.TiktokImgService; import com.bnyer.img.service.TiktokImgService;
import com.bnyer.img.vo.*; import com.bnyer.img.vo.ProfitVo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map;
@Service @Service
@Slf4j @Slf4j
@ -40,80 +33,37 @@ public class CreatorProfitServiceImpl implements CreatorProfitService {
private TiktokImgService tiktokImgService; private TiktokImgService tiktokImgService;
@Override @Override
public boolean insertPreAdProfit(CreatorProfitAdInsertDto params) { public boolean checkCreatorProfitExist(Long creatorId, Long imgId,String appType,String platform, String date) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); LambdaQueryWrapper<CreatorProfit> wrapper = new LambdaQueryWrapper<>();
String date = df.format(new Date()); wrapper.eq(CreatorProfit::getCreatorId, creatorId);
String redisKey = RedisKeyConstant.WECHAT_CREATOR_DOWNLOAD_KEY + date; wrapper.eq(CreatorProfit::getImgId, imgId);
String hashKey = params.getCreatorId()+":"+params.getImgId()+":"+params.getAppType()+":"+params.getPlatform(); wrapper.eq(CreatorProfit::getAppType, appType);
try{ wrapper.eq(CreatorProfit::getPlatform,platform);
if(!redisService.hasHashKey(redisKey,hashKey)){ wrapper.eq(CreatorProfit::getCreateTime, date);
//写入入账缓存 CreatorProfit creatorProfit = creatorProfitMapper.selectOne(wrapper);
params.setCreateTime(new Date()); if(creatorProfit != null){
redisService.setCacheMapValue(redisKey,hashKey, JSON.toJSON(params));
log.info("艺术家id【{}】图片【{}】应用【{}】平台【{}】被下载了,写入即将入账广告缓存成功!",
params.getCreatorId(),params.getImgId(),params.getAppType(),params.getPlatform());
}
//写入图片下载量缓存
tiktokImgService.writeDownloadNum(params.getCreatorId(),params.getAppType(),params.getImgId(),params.getPlatform());
//写入应用平台下载数量缓存
tiktokImgService.writeDownloadTotalNum(params.getAppType(),params.getPlatform());
return true;
}catch (Exception e){
log.error("写入即将入账广告缓存失败!失败原因为:",e);
return false; return false;
} }else{
}
@Override
public boolean insertPreInviteProfit(CreatorProfitInviteInsertDto params) {
String redisKey = RedisKeyConstant.WECHAT_CREATOR_INVITE_KEY + params.getCreatorId();
//被邀请人搜索码
String hashKey = params.getScanCode();
try{
if(!redisService.hasHashKey(redisKey,hashKey)){
//写入入账缓存
params.setCreateTime(new Date());
redisService.setCacheMapValue(redisKey,hashKey, JSON.toJSON(params));
log.info("艺术家id【{}】邀请了搜索码【{}】成为艺术家,写入即将入账邀请缓存成功!",
params.getCreatorId(),params.getScanCode());
}
return true; return true;
}catch (Exception e){
log.error("写入即将入账邀请缓存失败!失败原因为:",e);
return false;
} }
} }
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public int insertAd(Long creatorId) { public int insertCreatorProfit(CreatorProfit creatorProfit) {
//TODO 确认收益后讲缓存中信息批量写入数据库,删除对应缓存
List<CreatorPreAdProfitVo> creatorPreProfitVos = this.queryFrontPreAdProfitList(creatorId);
CreatorProfit creatorProfit = new CreatorProfit();
creatorProfit.setCreateTime(new Date()); creatorProfit.setCreateTime(new Date());
creatorProfit.setUpdateTime(new Date()); creatorProfit.setUpdateTime(new Date());
creatorProfit.setIncomeTime(new Date()); creatorProfit.setStatus("0");
creatorProfit.setStatus("1");
creatorProfit.setConfirmStatus("0");
creatorProfit.setIsShow("1"); creatorProfit.setIsShow("1");
creatorProfit.setSort(0); creatorProfit.setSort(0);
creatorProfit.setDownloadNum(1);
return creatorProfitMapper.insert(creatorProfit); return creatorProfitMapper.insert(creatorProfit);
} }
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public int insertInvite(Long creatorId) { public int updateCreatorProfitDownloadNum(Long creatorId, Long imgId, String appType, String platform, String date) {
//TODO 确认收益后讲缓存中信息批量写入数据库,删除对应缓存 return creatorProfitMapper.updateDownloadNum(creatorId,imgId,appType,platform,date);
List<CreatorPreInviteProfitVo> creatorPreProfitVos = this.queryFrontPreInviteProfitList(creatorId);
CreatorProfit creatorProfit = new CreatorProfit();
creatorProfit.setCreateTime(new Date());
creatorProfit.setUpdateTime(new Date());
creatorProfit.setIncomeTime(new Date());
creatorProfit.setStatus("1");
creatorProfit.setConfirmStatus("0");
creatorProfit.setIsShow("1");
creatorProfit.setSort(0);
return creatorProfitMapper.insert(creatorProfit);
} }
@Override @Override
@ -210,85 +160,6 @@ public class CreatorProfitServiceImpl implements CreatorProfitService {
log.info("==============批量更新艺术家收益状态完成,耗时【{}】毫秒!===============",System.currentTimeMillis() - startTime); log.info("==============批量更新艺术家收益状态完成,耗时【{}】毫秒!===============",System.currentTimeMillis() - startTime);
} }
@Override
public List<CreatorPreAdProfitVo> queryFrontPreAdProfitList(Long creatorId) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String date = df.format(new Date());
String redisKey = RedisKeyConstant.WECHAT_CREATOR_DOWNLOAD_KEY + date;
String imgKey = RedisKeyConstant.TIKTOK_IMG_DOWNLOAD_NUM_KEY + date;
//获取基础图片信息
List<CreatorPreAdProfitVo> list = new ArrayList<>();
try{
if(redisService.hasKey(redisKey)){
CreatorPreAdProfitVo profitVo = null;
Map<String, Object> cacheMap = redisService.getCacheMap(redisKey);
for (Map.Entry<String, Object> stringObjectEntry : cacheMap.entrySet()) {
JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(stringObjectEntry.getValue()));
profitVo = new CreatorPreAdProfitVo();
profitVo.setCreatorId(creatorId);
profitVo.setImgId(Long.valueOf(jsonObject.getString("imgId")));
profitVo.setImgUrl(jsonObject.getString("imgUrl"));
profitVo.setAppType(jsonObject.getString("appType"));
profitVo.setType(jsonObject.getString("type"));
profitVo.setPlatform(jsonObject.getString("platform"));
profitVo.setScanCode(jsonObject.getString("scanCode"));
profitVo.setStatus(jsonObject.getString("status"));
profitVo.setCreateTime(new Date(Long.parseLong(jsonObject.getString("createTime"))));
//获取图片下载量
if(redisService.hasHashKey(imgKey,stringObjectEntry.getKey())){
Integer downloadNum = (Integer) redisService.getCacheMapValue(imgKey, stringObjectEntry.getKey());
profitVo.setDownloadNum(downloadNum);
}
list.add(profitVo);
}
}
}catch (Exception e){
log.error("艺术家查询即将入账广告收益失败,错误为:",e);
return null;
}
return list;
}
@Override
public List<CreatorPreInviteProfitVo> queryFrontPreInviteProfitList(Long creatorId) {
String redisKey = RedisKeyConstant.WECHAT_CREATOR_DOWNLOAD_KEY + creatorId;
//获取邀请列表信息
List<CreatorPreInviteProfitVo> list = new ArrayList<>();
try{
if(redisService.hasKey(redisKey)){
CreatorPreInviteProfitVo profitVo = null;
Map<String, Object> cacheMap = redisService.getCacheMap(redisKey);
for (Map.Entry<String, Object> stringObjectEntry : cacheMap.entrySet()) {
JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(stringObjectEntry.getValue()));
profitVo = new CreatorPreInviteProfitVo();
profitVo.setCreatorId(creatorId);
profitVo.setHeadUrl(jsonObject.getString("headUrl"));
profitVo.setAppType(jsonObject.getString("appType"));
profitVo.setType(jsonObject.getString("type"));
profitVo.setScanCode(jsonObject.getString("scanCode"));
profitVo.setStatus(jsonObject.getString("status"));
profitVo.setCreateTime(new Date(Long.parseLong(jsonObject.getString("createTime"))));
list.add(profitVo);
}
}
}catch (Exception e){
log.error("艺术家查询即将入账邀请收益失败,错误为:",e);
return null;
}
return list;
}
@Override
public CreatorIncomeProfitVo queryFrontIncomeProfit(Long creatorId) {
return creatorProfitMapper.queryFrontIncomeProfit(creatorId);
}
@Override
public CreatorTransIntoProfitVo queryFrontTransIntoProfit(Long creatorId) {
return creatorProfitMapper.queryFrontTransIntoProfit(creatorId);
}
@Override @Override
public ProfitVo queryFrontProfitInfo(Long creatorId) { public ProfitVo queryFrontProfitInfo(Long creatorId) {
//TODO 计算收益 //TODO 计算收益

10
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokImgServiceImpl.java

@ -146,16 +146,6 @@ public class TiktokImgServiceImpl implements TiktokImgService {
return tiktokImgMapper.update(img,wrapper); return tiktokImgMapper.update(img,wrapper);
} }
@Override
public void writeDownloadNum(Long creatorId,String appType,Long imgId,String platform) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String date = df.format(new Date());
String redisKey = RedisKeyConstant.TIKTOK_IMG_DOWNLOAD_NUM_KEY + date;
String hashKey = creatorId+":"+imgId+":"+appType+":"+platform;
redisService.hashIncr(redisKey,hashKey, 1);
log.info("日期【{}】艺术家【{}】的图片id【{}】应用【{}】平台【{}】下载量+1",date,creatorId,imgId,appType,platform);
}
@Override @Override
public void writeDownloadTotalNum(String appType, String platform) { public void writeDownloadTotalNum(String appType, String platform) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");

69
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorIncomeProfitVo.java

@ -1,69 +0,0 @@
package com.bnyer.img.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
@Getter
@Setter
@ApiModel("艺术家已入账收益响应体")
public class CreatorIncomeProfitVo implements Serializable {
@ApiModelProperty(value="主键id")
private Long id;
@ApiModelProperty(value="结算流水号")
private String orderNo;
@ApiModelProperty(value="艺术家id")
private Long creatorId;
@ApiModelProperty(value="收益人/邀请人搜索码")
private String scanCode;
@ApiModelProperty(value="图片id")
private Long imgId;
@ApiModelProperty(value="结算收益(单位毫分)")
private BigDecimal profit;
@ApiModelProperty(value="结算平台(0->抖音;1->快手;2->微信;3->uniapp)")
private String platform;
@ApiModelProperty(value="应用类型(0->bnyer壁纸)")
private String appType;
@ApiModelProperty(value="收益类型(0->广告浏览;1->邀请;2->会员)")
private String type;
@ApiModelProperty(value="收益状态(0->即将到账;1->已到账;2->转入钱包)")
private String status;
@ApiModelProperty(value="确认收益方式(0->系统自动;1->艺术家手动)")
private String confirmType;
@ApiModelProperty(value="艺术家确认收益状态(0->待确认;1->已确认)")
private String confirmStatus;
@ApiModelProperty(value="下载次数")
private Integer downloadNum;
@ApiModelProperty(value="浏览次数")
private Integer viewNum;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value="平台结算收益时间")
private Date incomeTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value="确认收益时间")
private Date confirmTime;
private static final long serialVersionUID = 1L;
}

50
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorPreAdProfitVo.java

@ -1,50 +0,0 @@
package com.bnyer.img.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.util.Date;
@Getter
@Setter
@ApiModel("艺术家即将入账广告收益响应体")
public class CreatorPreAdProfitVo implements Serializable {
@ApiModelProperty(value="艺术家id")
private Long creatorId;
@ApiModelProperty(value="收益人/邀请人搜索码")
private String scanCode;
@ApiModelProperty(value="图片id")
private Long imgId;
@ApiModelProperty(value="图片地址")
private String imgUrl;
@ApiModelProperty(value="结算平台(0->抖音;1->快手;2->微信;3->uniapp)")
private String platform;
@ApiModelProperty(value="应用类型(0->bnyer壁纸)")
private String appType;
@ApiModelProperty(value="收益类型(0->广告浏览;1->邀请;2->会员)")
private String type;
@ApiModelProperty(value="收益状态(0->即将到账;1->已到账;2->转入钱包)")
private String status;
@ApiModelProperty(value="下载次数")
private Integer downloadNum;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value="创建时间")
private Date createTime;
private static final long serialVersionUID = 1L;
}

41
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorPreInviteProfitVo.java

@ -1,41 +0,0 @@
package com.bnyer.img.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.util.Date;
@Getter
@Setter
@ApiModel("艺术家即将入账邀请收益响应体")
public class CreatorPreInviteProfitVo implements Serializable {
@ApiModelProperty(value="艺术家id")
private Long creatorId;
@ApiModelProperty(value="收益人/邀请人搜索码")
private String scanCode;
@ApiModelProperty(value="图片地址")
private String headUrl;
@ApiModelProperty(value="应用类型(0->bnyer壁纸)")
private String appType;
@ApiModelProperty(value="收益类型(0->广告浏览;1->邀请;2->会员)")
private String type;
@ApiModelProperty(value="收益状态(0->即将到账;1->已到账;2->转入钱包)")
private String status;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value="创建时间")
private Date createTime;
private static final long serialVersionUID = 1L;
}

59
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorTransIntoProfitVo.java

@ -1,59 +0,0 @@
package com.bnyer.img.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
@Getter
@Setter
@ApiModel("艺术家转入钱包响应体")
public class CreatorTransIntoProfitVo implements Serializable {
@ApiModelProperty(value="主键id")
private Long id;
@ApiModelProperty(value="结算流水号")
private String orderNo;
@ApiModelProperty(value="艺术家id")
private Long creatorId;
@ApiModelProperty(value="收益人/邀请人搜索码")
private String scanCode;
@ApiModelProperty(value="图片id")
private Long imgId;
@ApiModelProperty(value="结算收益(单位毫分)")
private BigDecimal profit;
@ApiModelProperty(value="结算平台(0->抖音;1->快手;2->微信;3->uniapp)")
private String platform;
@ApiModelProperty(value="应用类型(0->bnyer壁纸)")
private String appType;
@ApiModelProperty(value="收益类型(0->广告浏览;1->邀请;2->会员)")
private String type;
@ApiModelProperty(value="收益状态(0->即将到账;1->已到账;2->转入钱包)")
private String status;
@ApiModelProperty(value="下载次数")
private Integer downloadNum;
@ApiModelProperty(value="浏览次数")
private Integer viewNum;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value="转入钱包时间")
private Date walletTime;
private static final long serialVersionUID = 1L;
}

26
bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/CreatorProfitMapper.xml

@ -17,7 +17,6 @@
<result column="confirm_type" jdbcType="CHAR" property="confirmType" /> <result column="confirm_type" jdbcType="CHAR" property="confirmType" />
<result column="confirm_status" jdbcType="CHAR" property="confirmStatus" /> <result column="confirm_status" jdbcType="CHAR" property="confirmStatus" />
<result column="download_num" jdbcType="INTEGER" property="downloadNum" /> <result column="download_num" jdbcType="INTEGER" property="downloadNum" />
<result column="view_num" jdbcType="INTEGER" property="viewNum" />
<result column="is_show" jdbcType="CHAR" property="isShow" /> <result column="is_show" jdbcType="CHAR" property="isShow" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" /> <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="income_time" jdbcType="TIMESTAMP" property="incomeTime" /> <result column="income_time" jdbcType="TIMESTAMP" property="incomeTime" />
@ -29,27 +28,10 @@
<sql id="Base_Column_List"> <sql id="Base_Column_List">
<!--@mbg.generated--> <!--@mbg.generated-->
id, order_no, creator_id,scan_code, img_id, profit, platform, app_type, `type`, `status`, confirm_type, id, order_no, creator_id,scan_code, img_id, profit, platform, app_type, `type`, `status`, confirm_type,
confirm_status, download_num, view_num, is_show, create_time, income_time, confirm_time, confirm_status, download_num, is_show, create_time, income_time, confirm_time,
wallet_time, update_time, sort wallet_time, update_time, sort
</sql> </sql>
<select id="queryFrontIncomeProfit" resultType="com.bnyer.img.vo.CreatorIncomeProfitVo">
select
id, order_no,creator_id,scan_code,img_id,profit,platform,app_type,type,status,
confirm_type,confirm_status,download_num, view_num,income_time, confirm_time
from img_creator_profit
where is_show = '1' and creator_id = #{creatorId}
</select>
<select id="queryFrontTransIntoProfit" resultType="com.bnyer.img.vo.CreatorTransIntoProfitVo">
select
id, order_no,creator_id,scan_code,img_id,profit,platform,app_type,type,status,
download_num,view_num,wallet_time
from img_creator_profit
where is_show = '1' and creator_id = #{creatorId}
</select>
<update id="batchUpdate"> <update id="batchUpdate">
update img_creator_profit update img_creator_profit
set confirm_type = '0',confirm_status = '1',confirm_time = now() set confirm_type = '0',confirm_status = '1',confirm_time = now()
@ -58,5 +40,11 @@
#{item.id} #{item.id}
</foreach> </foreach>
</update> </update>
<update id="updateDownloadNum">
update img_creator_profit
set download_num = download_num + 1, update_time = (select NOW())
where creator_id = #{creatorId} and img_id = #{imgId} and app_type = #{appType}
and platform = #{platform} and DATE_FORMAT(create_time,'%Y-%m-%d') = #{date}
</update>
</mapper> </mapper>

Loading…
Cancel
Save