Browse Source

feature1.0.0-img:修改创作者收益方法

master
chengkun 4 years ago
parent
commit
4bdf4a92da
  1. 17
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/constants/RedisKeyConstant.java
  2. 28
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/CreatorMiniController.java
  3. 72
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/CreatorProfitController.java
  4. 48
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/DownloadLog.java
  5. 25
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorHandleConfirmProfitDto.java
  6. 55
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorProfitInsertDto.java
  7. 79
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorProfitUpdateDto.java
  8. 15
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/CreatorProfitMapper.java
  9. 9
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/DownloadLogMapper.java
  10. 21
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/CreatorProfitService.java
  11. 44
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/DownloadLogService.java
  12. 5
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/TiktokImgService.java
  13. 98
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/CreatorProfitServiceImpl.java
  14. 8
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokImgServiceImpl.java
  15. 28
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/CreatorProfitConfirmTypeSyncTask.java
  16. 5
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorPreProfitVo.java
  17. 16
      bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/CreatorProfitMapper.xml
  18. 20
      bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/DownloadLogMapper.xml

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

@ -30,10 +30,25 @@ public class RedisKeyConstant {
/**
* 抖音小程序图片下载数量键
*/
public static final String TIKTOK_IMG_DOWNLOAD_NUM_KEY = "bnyer.img.tiktok.downloadNum";
public static final String TIKTOK_IMG_DOWNLOAD_NUM_KEY = "bnyer.img.creator.downloadNum:";
/**
* 抖音小程序用户登录键
*/
public static final String TIKTOK_USER_LOGIN_KEY = "bnyer.img.tiktok.user:";
/**
* 微信小程序艺术家登录键
*/
public static final String WECHAT_CREATOR_LOGIN_KEY = "bnyer.img.wechat.creator:";
/**
* 微信小程序艺术家图片下载键
*/
public static final String WECHAT_CREATOR_DOWNLOAD_KEY = "bnyer.img.download.creator:";
/**
* 微信小程序艺术家邀请键
*/
public static final String WECHAT_CREATOR_INVITE_KEY = "bnyer.img.invite.creator:";
}

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

@ -50,6 +50,9 @@ public class CreatorMiniController extends BaseController {
@Autowired
private WithdrawLogService withdrawLogService;
@Autowired
private CreatorProfitService creatorProfitService;
//@TokenCheck
@ApiOperation(value="成为艺术家")
@PostMapping(value = "/insertCreator")
@ -186,4 +189,29 @@ public class CreatorMiniController extends BaseController {
log.info("【艺术家小程序】艺术家【{}】申请提现", dto.getCreatorId());
return AjaxResult.success(withdrawLogService.insert(dto.extractParam()));
}
//@TokenCheck
@ApiOperation(value="新增艺术家即将入账收益缓存")
@PostMapping(value = "/insertPreProfit")
public AjaxResult insertPreProfit(@Validated @RequestBody @ApiParam("即将入账对象") CreatorProfitInsertDto dto){
log.info("【艺术家小程序】新增艺术家即将入账收益缓存参数为:{}", JSON.toJSONString(dto));
return AjaxResult.success(creatorProfitService.insertCache(dto));
}
//@TokenCheck
@ApiOperation(value="艺术家手动确认收益")
@PostMapping(value = "/handleUpdateConfirmType")
public AjaxResult handleUpdateConfirmType(@Validated @RequestBody @ApiParam("手动确认收益对象") CreatorHandleConfirmProfitDto dto){
log.info("【艺术家小程序】艺术家【{}】手动确认收益id【{}】成功!", dto.getCreatorId(),dto.getId());
return AjaxResult.success(creatorProfitService.handleUpdateConfirmType(dto.getId(), dto.getCreatorId()));
}
//@TokenCheck
@ApiOperation(value="查询指定艺术家当天即将入账收益列表")
@GetMapping(value = "/getPreProfitList/{creatorId}")
public AjaxResult getPreProfitList(@PathVariable @ApiParam("艺术家id") Long creatorId){
log.info("【艺术家小程序】查询指定艺术家id【{}】当天即将入账收益列表",creatorId);
return AjaxResult.success(creatorProfitService.queryFrontPreProfitList(creatorId));
}
}

72
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/CreatorProfitController.java

@ -0,0 +1,72 @@
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.CreatorProfit;
import com.bnyer.img.dto.CreatorProfitPageDto;
import com.bnyer.img.dto.CreatorProfitUpdateDto;
import com.bnyer.img.dto.StatusDto;
import com.bnyer.img.service.CreatorProfitService;
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/creatorProfit")
@Slf4j
public class CreatorProfitController extends BaseController {
@Autowired
private CreatorProfitService creatorProfitService;
//@RequiresPermissions("system:config:list")
@ApiOperation(value="查询creatorProfit分页")
@PostMapping("/page")
public TableDataInfo pageCreatorProfit(@RequestBody @ApiParam("分页对象") CreatorProfitPageDto dto){
PageHelper.startPage(dto.getPageNum(), dto.getPageSize());
List<CreatorProfit> creatorProfits = creatorProfitService.queryPage(dto);
return getDataTable(creatorProfits);
}
//@RequiresPermissions("system:config:list")
@ApiOperation(value="修改creatorProfit")
@PostMapping(value = "/update")
public AjaxResult updateCreatorProfit(@Validated @RequestBody @ApiParam("creatorProfit对象") CreatorProfitUpdateDto dto){
log.debug("【图文平台后台】修改creatorProfit参数为:{}", JSON.toJSONString(dto));
return AjaxResult.success(creatorProfitService.update(dto.extractParam()));
}
//@RequiresPermissions("system:config:list")
@ApiOperation(value="删除creatorProfit")
@DeleteMapping(value = "/delete/{ids}")
public AjaxResult deleteCreatorProfit(@PathVariable @ApiParam("主键ids") List<Long> ids){
log.debug("【图文平台后台】删除creatorProfit参数为:{}", JSON.toJSONString(ids));
return AjaxResult.success(creatorProfitService.delete(ids));
}
//@RequiresPermissions("system:config:list")
@ApiOperation(value="查询creatorProfit详情")
@GetMapping(value = "/details/{id}")
public AjaxResult detailsCreatorProfit(@PathVariable @ApiParam("主键id") Long id){
log.debug("【图文平台后台】查询creatorProfit详情参数为:{}", id);
return AjaxResult.success(creatorProfitService.queryDetails(id));
}
//@RequiresPermissions("system:config:list")
@ApiOperation(value="变更type显示状态")
@PostMapping(value = "/changeStatus")
public AjaxResult changeStatus(@Validated @RequestBody @ApiParam("type状态对象") StatusDto dto){
log.debug("【图文平台后台】变更type参数为:{}", JSON.toJSONString(dto));
return AjaxResult.success(creatorProfitService.changeIsShow(dto.getId(),dto.getStatus()));
}
}

48
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/DownloadLog.java

@ -1,48 +0,0 @@
package com.bnyer.img.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
@ApiModel(value="com-bnyer-img-domain-DownloadLog")
@Getter
@Setter
@ToString
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "img_download_log")
public class DownloadLog extends BaseDomain {
/**
* 主键id
*/
@TableId(value = "id", type = IdType.INPUT)
@ApiModelProperty(value="主键id")
private Long id;
/**
* 搜索码
*/
@TableField(value = "scan_code")
@ApiModelProperty(value="搜索码")
private String scanCode;
/**
* 渠道(0->抖音;1->快手;2->微信)
*/
@TableField(value = "channel")
@ApiModelProperty(value="渠道(0->抖音;1->快手;2->微信)")
private String channel;
/**
* 图片id
*/
@TableField(value = "img_id")
@ApiModelProperty(value="图片id")
private Long imgId;
private static final long serialVersionUID = 1L;
}

25
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorHandleConfirmProfitDto.java

@ -0,0 +1,25 @@
package com.bnyer.img.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@Getter
@Setter
@ApiModel("艺术家手动确认收益接收类")
public class CreatorHandleConfirmProfitDto implements Serializable {
@NotNull(message = "艺术家id不能为空!")
@ApiModelProperty(value="id")
private Long id;
@NotNull(message = "艺术家id不能为空!")
@ApiModelProperty(value="艺术家id")
private Long creatorId;
}

55
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorProfitInsertDto.java

@ -0,0 +1,55 @@
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 CreatorProfitInsertDto implements Serializable {
@NotNull(message = "艺术家id不能为空!")
@ApiModelProperty(value="艺术家id")
private Long creatorId;
@NotBlank(message = "收益人/邀请人搜索码不能为空!")
@ApiModelProperty(value="收益人/邀请人搜索码")
private String scanCode;
@NotNull(message = "图片id不能为空!")
@ApiModelProperty(value="图片id")
private Long imgId;
@NotBlank(message = "图片地址不能为空!")
@ApiModelProperty(value="图片地址")
private String imgUrl;
@NotBlank(message = "结算平台不能为空!")
@ApiModelProperty(value="结算平台(0->抖音;1->快手;2->微信;3->uniapp)")
private String platform;
@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;
}

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

@ -0,0 +1,79 @@
package com.bnyer.img.dto;
import com.bnyer.common.core.utils.bean.BeanUtils;
import com.bnyer.img.domain.CreatorProfit;
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;
@Getter
@Setter
@ApiModel("艺术家修改权益接收类")
public class CreatorProfitUpdateDto implements Serializable {
@ApiModelProperty(value="主键id")
private Long id;
@ApiModelProperty(value="结算流水号")
private String orderNo;
@NotNull(message = "艺术家id不能为空!")
@ApiModelProperty(value="艺术家id")
private Long creatorId;
@NotBlank(message = "收益人/邀请人搜索码不能为空!")
@ApiModelProperty(value="收益人/邀请人搜索码")
private String scanCode;
@NotNull(message = "图片id不能为空!")
@ApiModelProperty(value="图片id")
private Long imgId;
@NotNull(message = "结算收益不能为空!")
@ApiModelProperty(value="结算收益(单位毫分)")
private Integer profit;
@NotBlank(message = "结算平台不能为空!")
@ApiModelProperty(value="结算平台(0->抖音;1->快手;2->微信;3->uniapp)")
private String platform;
@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;
@NotBlank(message = "确认收益方式不能为空!")
@ApiModelProperty(value="确认收益方式(0->系统自动;1->艺术家手动)")
private String confirmType;
@NotBlank(message = "艺术家确认收益状态不能为空!")
@ApiModelProperty(value="艺术家确认收益状态(0->待确认;1->已确认)")
private String confirmStatus;
@NotNull(message = "下载次数不能为空!")
@ApiModelProperty(value="下载次数")
private Integer downloadNum;
@NotNull(message = "浏览次数不能为空!")
@ApiModelProperty(value="浏览次数")
private Integer viewNum;
public CreatorProfit extractParam(){
CreatorProfit creatorProfit = new CreatorProfit();
BeanUtils.copyProperties(this,creatorProfit);
return creatorProfit;
}
}

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

@ -8,6 +8,8 @@ import com.bnyer.img.vo.CreatorTransIntoProfitVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author chengkun
* @date 2022/6/8 10:51
@ -15,13 +17,6 @@ import org.apache.ibatis.annotations.Param;
@Mapper
public interface CreatorProfitMapper extends BaseMapper<CreatorProfit> {
/**
* 小程序艺术家查询昨日即将入账收益
* @param creatorId 艺术家id
* @return -
*/
CreatorPreProfitVo queryFrontPreProfit(@Param("creatorId") Long creatorId);
/**
* 小程序艺术家查询昨日入场收益
* @param creatorId 艺术家id
@ -35,4 +30,10 @@ public interface CreatorProfitMapper extends BaseMapper<CreatorProfit> {
* @return -
*/
CreatorTransIntoProfitVo queryFrontTransIntoProfit(@Param("creatorId")Long creatorId);
/**
* 批量系统修改确认收益状态
* @param params id列表
*/
void batchUpdate(@Param("params") List<Long> params);
}

9
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/DownloadLogMapper.java

@ -1,9 +0,0 @@
package com.bnyer.img.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.bnyer.img.domain.DownloadLog;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface DownloadLogMapper extends BaseMapper<DownloadLog> {
}

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

@ -1,6 +1,7 @@
package com.bnyer.img.service;
import com.bnyer.img.domain.CreatorProfit;
import com.bnyer.img.dto.CreatorProfitInsertDto;
import com.bnyer.img.dto.CreatorProfitPageDto;
import com.bnyer.img.vo.CreatorIncomeProfitVo;
import com.bnyer.img.vo.CreatorPreProfitVo;
@ -15,12 +16,19 @@ import java.util.List;
*/
public interface CreatorProfitService {
/**
* 新增即将入账收益
* @param params 收益参数
* @return -
*/
boolean insertCache(CreatorProfitInsertDto params);
/**
* 新增收益结算
* @param creatorProfit 收益对象
* @param creatorId 艺术家id
* @return -
*/
int insert(CreatorProfit creatorProfit);
int insert(Long creatorId);
/**
* 修改结算收益
@ -67,11 +75,16 @@ public interface CreatorProfitService {
int handleUpdateConfirmType(Long id,Long creatorId);
/**
* 小程序查询当天即将入账收益
* 批量系统修改确认收益状态
*/
void batchUpdateConfirmType();
/**
* 小程序查询当天即将入账收益列表
* @param creatorId 艺术家id
* @return -
*/
CreatorPreProfitVo queryFrontPreProfit(Long creatorId);
List<CreatorPreProfitVo> queryFrontPreProfitList(Long creatorId);
/**
* 小程序查询昨日已入账收益

44
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/DownloadLogService.java

@ -1,44 +0,0 @@
package com.bnyer.img.service;
import com.bnyer.img.domain.DownloadLog;
import com.bnyer.img.domain.VerifyLog;
import com.bnyer.img.dto.DownloadLogPageDto;
import com.bnyer.img.dto.VerifyPageDto;
import com.bnyer.img.vo.VerifyLogVo;
import java.util.List;
/**
* @author chengkun
* @date 2022/5/31 10:37
*/
public interface DownloadLogService {
/**
* 新增下载记录
* @param downloadLog 记录参数
* @return -
*/
int insertDownloadLog(DownloadLog downloadLog);
/**
* 查询下载记录分页
* @param params 分页参数
* @return -
*/
List<DownloadLog> queryPage(DownloadLogPageDto params);
/**
* 删除记录
* @param ids 主键ids
* @return -
*/
int delete(List<Long> ids);
/**
* 根据艺术家id查询下载状态记录
* @param creatorId 艺术家id
* @return -
*/
VerifyLogVo queryVerifyStatus(Long creatorId);
}

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

@ -92,9 +92,12 @@ public interface TiktokImgService {
/**
* 图片下载数量写入缓存
* @param creatorId 艺术家id
* @param appType 应用
* @param imgId 图片id
* @param platform 平台
*/
void writeDownloadNum(Long imgId);
void writeDownloadNum(Long creatorId,String appType,Long imgId,String platform);
/**
* 同步图片下载数量到db

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

@ -1,12 +1,18 @@
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.update.LambdaUpdateWrapper;
import com.bnyer.common.core.utils.StringUtils;
import com.bnyer.common.redis.service.RedisService;
import com.bnyer.img.constants.RedisKeyConstant;
import com.bnyer.img.domain.CreatorProfit;
import com.bnyer.img.dto.CreatorProfitInsertDto;
import com.bnyer.img.dto.CreatorProfitPageDto;
import com.bnyer.img.mapper.CreatorProfitMapper;
import com.bnyer.img.service.CreatorProfitService;
import com.bnyer.img.service.TiktokImgService;
import com.bnyer.img.vo.CreatorIncomeProfitVo;
import com.bnyer.img.vo.CreatorPreProfitVo;
import com.bnyer.img.vo.CreatorTransIntoProfitVo;
@ -16,8 +22,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Service
@Slf4j
@ -26,12 +34,43 @@ public class CreatorProfitServiceImpl implements CreatorProfitService {
@Autowired
private CreatorProfitMapper creatorProfitMapper;
@Autowired
private RedisService redisService;
@Autowired
private TiktokImgService tiktokImgService;
@Override
public boolean insertCache(CreatorProfitInsertDto params) {
String redisKey = RedisKeyConstant.WECHAT_CREATOR_DOWNLOAD_KEY + params.getCreatorId();
String hashKey = params.getAppType()+":"+params.getImgId()+":"+params.getPlatform();
try{
if(!redisService.hasHashKey(redisKey,hashKey)){
//写入入账缓存
params.setCreateTime(new Date());
redisService.setCacheMapValue(redisKey,hashKey, JSON.toJSON(params));
log.info("艺术家id【{}】平台【{}】的图片【{}】被下载了,写入即将入账缓存成功!",
params.getCreatorId(),params.getPlatform(),params.getImgId());
}
//写入图片下载量缓存
tiktokImgService.writeDownloadNum(params.getCreatorId(),params.getAppType(),params.getImgId(),params.getPlatform());
return true;
}catch (Exception e){
log.error("写入即将入账缓存失败!失败原因为:",e);
return false;
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public int insert(CreatorProfit creatorProfit) {
public int insert(Long creatorId) {
//TODO 确认收益后讲缓存中信息写入数据库,删除对应缓存
List<CreatorPreProfitVo> creatorPreProfitVos = this.queryFrontPreProfitList(creatorId);
CreatorProfit creatorProfit = new CreatorProfit();
creatorProfit.setCreateTime(new Date());
creatorProfit.setUpdateTime(new Date());
creatorProfit.setStatus("0");
creatorProfit.setIncomeTime(new Date());
creatorProfit.setStatus("1");
creatorProfit.setConfirmStatus("0");
creatorProfit.setIsShow("1");
creatorProfit.setSort(0);
@ -111,12 +150,63 @@ public class CreatorProfitServiceImpl implements CreatorProfitService {
CreatorProfit creatorProfit = new CreatorProfit();
creatorProfit.setConfirmStatus("1");
creatorProfit.setConfirmType("1");
creatorProfit.setConfirmTime(new Date());
return creatorProfitMapper.update(creatorProfit, wrapper);
}
@Override
public CreatorPreProfitVo queryFrontPreProfit(Long creatorId) {
return creatorProfitMapper.queryFrontPreProfit(creatorId);
public void batchUpdateConfirmType() {
log.info("==============批量更新艺术家收益状态开始!===============");
long startTime = System.currentTimeMillis();
//查询收益表,获取所有状态为'未确认'的id
LambdaQueryWrapper<CreatorProfit> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(CreatorProfit::getConfirmStatus, "0");
List<CreatorProfit> creatorProfits = creatorProfitMapper.selectList(wrapper);
List<Long> idList = new ArrayList<>();
for (CreatorProfit creatorProfit : creatorProfits) {
idList.add(creatorProfit.getId());
}
//批量更新收益表确认收益状态
creatorProfitMapper.batchUpdate(idList);
log.info("==============批量更新艺术家收益状态完成,耗时【{}】毫秒!===============",System.currentTimeMillis() - startTime);
}
@Override
public List<CreatorPreProfitVo> queryFrontPreProfitList(Long creatorId) {
String redisKey = RedisKeyConstant.WECHAT_CREATOR_DOWNLOAD_KEY + creatorId;
String imgKey = RedisKeyConstant.TIKTOK_IMG_DOWNLOAD_NUM_KEY + creatorId;
//获取基础图片信息
List<CreatorPreProfitVo> list = new ArrayList<>();
try{
if(redisService.hasKey(redisKey)){
CreatorPreProfitVo 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 CreatorPreProfitVo();
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

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

@ -146,9 +146,11 @@ public class TiktokImgServiceImpl implements TiktokImgService {
}
@Override
public void writeDownloadNum(Long imgId) {
String redisKey = RedisKeyConstant.TIKTOK_IMG_DOWNLOAD_NUM_KEY;
redisService.hashIncr(redisKey,String.valueOf(imgId), 1);
public void writeDownloadNum(Long creatorId,String appType,Long imgId,String platform) {
String redisKey = RedisKeyConstant.TIKTOK_IMG_DOWNLOAD_NUM_KEY + creatorId;
String hashKey = appType+":"+imgId+":"+platform;
redisService.hashIncr(redisKey,hashKey, 1);
log.info("应用【{}】的图片id【{}】平台【{}】下载量+1",appType,imgId,platform);
}
@Override

28
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/CreatorProfitConfirmTypeSyncTask.java

@ -0,0 +1,28 @@
package com.bnyer.img.task;
import com.bnyer.img.service.CreatorProfitService;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.annotation.XxlJob;
import com.xxl.job.core.log.XxlJobLogger;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* @author chengkun
* @date 2022/5/12 18:13
*/
@Component
@Slf4j
public class CreatorProfitConfirmTypeSyncTask {
@Autowired
private CreatorProfitService creatorProfitService;
@XxlJob("creatorProfitConfirmTypeSyncTask")
public ReturnT<String> syncUpdateConfirmType(String param) throws Exception {
creatorProfitService.batchUpdateConfirmType();
XxlJobLogger.log("{} 我执行了批量更新艺术家收益状态任务", System.currentTimeMillis());
return ReturnT.SUCCESS;
}
}

5
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorPreProfitVo.java

@ -14,8 +14,6 @@ import java.util.Date;
@Setter
@ApiModel("艺术家即将入账收益响应体")
public class CreatorPreProfitVo implements Serializable {
@ApiModelProperty(value="主键id")
private Long id;
@ApiModelProperty(value="艺术家id")
private Long creatorId;
@ -26,6 +24,9 @@ public class CreatorPreProfitVo implements Serializable {
@ApiModelProperty(value="图片id")
private Long imgId;
@ApiModelProperty(value="图片地址")
private String imgUrl;
@ApiModelProperty(value="结算平台(0->抖音;1->快手;2->微信;3->uniapp)")
private String platform;

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

@ -33,12 +33,6 @@
wallet_time, update_time, sort
</sql>
<select id="queryFrontPreProfit" resultType="com.bnyer.img.vo.CreatorPreProfitVo">
select
id,creator_id,scan_code,img_id,platform,app_type,type,status,download_num,create_time
from img_creator_profit
where is_show = '1' and creator_id = #{creatorId}
</select>
<select id="queryFrontIncomeProfit" resultType="com.bnyer.img.vo.CreatorIncomeProfitVo">
select
@ -55,4 +49,14 @@
from img_creator_profit
where is_show = '1' and creator_id = #{creatorId}
</select>
<update id="batchUpdate">
update img_creator_profit
set confirm_type = '0',confirm_status = '1',confirm_time = now()
where id in
<foreach collection="params" item="item" separator="," open="(" close=")">
#{item.id}
</foreach>
</update>
</mapper>

20
bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/DownloadLogMapper.xml

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bnyer.img.mapper.DownloadLogMapper">
<resultMap id="BaseResultMap" type="com.bnyer.img.domain.DownloadLog">
<!--@mbg.generated-->
<!--@Table img_download_log-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="scan_code" jdbcType="VARCHAR" property="scanCode" />
<result column="channel" jdbcType="CHAR" property="channel" />
<result column="img_id" jdbcType="BIGINT" property="imgId" />
<result column="is_show" jdbcType="CHAR" property="isShow" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="sort" jdbcType="INTEGER" property="sort" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, scan_code, channel, img_id, create_time, update_time, sort,is_show
</sql>
</mapper>
Loading…
Cancel
Save