Browse Source

feature1.0.0-img:新增用户下载次数控制接口;统计艺术家图片分类数量接口

feature-1.0-img-prototype
chengkun 4 years ago
parent
commit
8acad4bb40
  1. 5
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/constants/RedisKeyConstant.java
  2. 7
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/CreatorMiniController.java
  3. 12
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/FhMiniController.java
  4. 12
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokMiniController.java
  5. 12
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/WxMiniController.java
  6. 10
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorProfitAdInsertDto.java
  7. 45
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorProfitInviteInsertDto.java
  8. 27
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/checkUserCanDownloadDto.java
  9. 8
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/TiktokImgMapper.java
  10. 20
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/CreatorProfitService.java
  11. 8
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/TiktokImgService.java
  12. 68
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/CreatorProfitServiceImpl.java
  13. 5
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/CreatorServiceImpl.java
  14. 19
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokImgServiceImpl.java
  15. 1
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/CollectionSyncTask.java
  16. 1
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/CreatorProfitConfirmTypeSyncTask.java
  17. 1
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/LikeSyncTask.java
  18. 29
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/UserDownloadSyncTask.java
  19. 35
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorTypeImgVo.java
  20. 8
      bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/TiktokImgMapper.xml

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

@ -92,4 +92,9 @@ public class RedisKeyConstant {
* 审核收益锁键 * 审核收益锁键
*/ */
public static final String VERIFY_PROFIT_LOCK_KEY = "bnyer.img.profit.lock:"; public static final String VERIFY_PROFIT_LOCK_KEY = "bnyer.img.profit.lock:";
/**
* 平台用户下载键
*/
public static final String PLATFORM_USER_DOWNLOAD_KEY = "bnyer.img.user.download:";
} }

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

@ -294,4 +294,11 @@ public class CreatorMiniController extends BaseController {
log.info("小程序艺术家数据参数为:{}", JSON.toJSON(param)); log.info("小程序艺术家数据参数为:{}", JSON.toJSON(param));
return AjaxResult.success(creatorService.login(param)); return AjaxResult.success(creatorService.login(param));
} }
//@TokenCheck
@ApiOperation(value="查询艺术家分类图片数量")
@GetMapping(value = "/queryCreatorTypeImgNum/{creatorId}")
public AjaxResult queryCreatorTypeImgNum(@PathVariable @ApiParam("艺术家id") Long creatorId){
return AjaxResult.success(tiktokImgService.queryCreatorTypeImgNum(creatorId));
}
} }

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

@ -197,18 +197,26 @@ public class FhMiniController extends BaseController {
return getDataTable(tiktokImgVos); return getDataTable(tiktokImgVos);
} }
//@TokenCheck
@ApiOperation(value="检查某平台用户当日下载次数是否超标")
@PostMapping(value = "/checkUserCanDownload")
public AjaxResult checkUserCanDownload(@Validated @RequestBody @ApiParam("检查超标对象") checkUserCanDownloadDto dto){
log.debug("【快手图文小程序】检查某平台用户当日下载次数是否超标参数为:{}", JSON.toJSONString(dto));
return AjaxResult.success(creatorProfitService.checkUserCanDownload(dto.getUserId(),dto.getPlatform(),dto.getAppType()));
}
//@TokenCheck //@TokenCheck
@ApiOperation(value="新增/更新艺术家即将入账广告收益") @ApiOperation(value="新增/更新艺术家即将入账广告收益")
@PostMapping(value = "/insertOrUpdatePreAdProfit") @PostMapping(value = "/insertOrUpdatePreAdProfit")
public AjaxResult insertOrUpdatePreAdProfit(@Validated @RequestBody @ApiParam("即将入账广告对象") CreatorProfitAdInsertDto dto){ public AjaxResult insertOrUpdatePreAdProfit(@Validated @RequestBody @ApiParam("即将入账广告对象") CreatorProfitAdInsertDto dto){
log.debug("【快手图文小程序】新增/更新艺术家即将入账广告收益参数为:{}", JSON.toJSONString(dto)); log.debug("【快手图文小程序】新增/更新艺术家即将入账广告收益参数为:{}", JSON.toJSONString(dto));
return AjaxResult.success(creatorProfitService.insertCreatorProfit(dto.extractParam())); return AjaxResult.success(creatorProfitService.insertCreatorProfit(dto));
} }
//@TokenCheck //@TokenCheck
@ApiOperation(value="新增/更新艺术家即将入账邀请收益") @ApiOperation(value="新增/更新艺术家即将入账邀请收益")
@PostMapping(value = "/insertOrUpdatePreInviteProfit") @PostMapping(value = "/insertOrUpdatePreInviteProfit")
public AjaxResult insertOrUpdatePreInviteProfit(@Validated @RequestBody @ApiParam("即将入账邀请对象") CreatorProfitAdInsertDto dto){ public AjaxResult insertOrUpdatePreInviteProfit(@Validated @RequestBody @ApiParam("即将入账邀请对象") CreatorProfitInviteInsertDto dto){
log.debug("【快手图文小程序】新增/更新艺术家即将入账邀请收益参数为:{}", JSON.toJSONString(dto)); log.debug("【快手图文小程序】新增/更新艺术家即将入账邀请收益参数为:{}", JSON.toJSONString(dto));
creatorProfitService.insertInvitedProfit(dto.extractParam()); creatorProfitService.insertInvitedProfit(dto.extractParam());
return AjaxResult.success(); return AjaxResult.success();

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

@ -207,18 +207,26 @@ public class TiktokMiniController extends BaseController {
return getDataTable(tiktokImgVos); return getDataTable(tiktokImgVos);
} }
//@TokenCheck
@ApiOperation(value="检查某平台用户当日下载次数是否超标")
@PostMapping(value = "/checkUserCanDownload")
public AjaxResult checkUserCanDownload(@Validated @RequestBody @ApiParam("检查超标对象") checkUserCanDownloadDto dto){
log.debug("【抖音图文小程序】检查某平台用户当日下载次数是否超标参数为:{}", JSON.toJSONString(dto));
return AjaxResult.success(creatorProfitService.checkUserCanDownload(dto.getUserId(),dto.getPlatform(),dto.getAppType()));
}
//@TokenCheck //@TokenCheck
@ApiOperation(value="新增/更新艺术家即将入账广告收益") @ApiOperation(value="新增/更新艺术家即将入账广告收益")
@PostMapping(value = "/insertOrUpdatePreAdProfit") @PostMapping(value = "/insertOrUpdatePreAdProfit")
public AjaxResult insertOrUpdatePreAdProfit(@Validated @RequestBody @ApiParam("即将入账广告对象") CreatorProfitAdInsertDto dto){ public AjaxResult insertOrUpdatePreAdProfit(@Validated @RequestBody @ApiParam("即将入账广告对象") CreatorProfitAdInsertDto dto){
log.debug("【抖音图文小程序】新增/更新艺术家即将入账广告收益参数为:{}", JSON.toJSONString(dto)); log.debug("【抖音图文小程序】新增/更新艺术家即将入账广告收益参数为:{}", JSON.toJSONString(dto));
return AjaxResult.success(creatorProfitService.insertCreatorProfit(dto.extractParam())); return AjaxResult.success(creatorProfitService.insertCreatorProfit(dto));
} }
//@TokenCheck //@TokenCheck
@ApiOperation(value="新增/更新艺术家即将入账邀请收益") @ApiOperation(value="新增/更新艺术家即将入账邀请收益")
@PostMapping(value = "/insertOrUpdatePreInviteProfit") @PostMapping(value = "/insertOrUpdatePreInviteProfit")
public AjaxResult insertOrUpdatePreInviteProfit(@Validated @RequestBody @ApiParam("即将入账邀请对象") CreatorProfitAdInsertDto dto){ public AjaxResult insertOrUpdatePreInviteProfit(@Validated @RequestBody @ApiParam("即将入账邀请对象") CreatorProfitInviteInsertDto dto){
log.debug("【抖音图文小程序】新增/更新艺术家即将入账邀请收益参数为:{}", JSON.toJSONString(dto)); log.debug("【抖音图文小程序】新增/更新艺术家即将入账邀请收益参数为:{}", JSON.toJSONString(dto));
creatorProfitService.insertInvitedProfit(dto.extractParam()); creatorProfitService.insertInvitedProfit(dto.extractParam());
return AjaxResult.success(); return AjaxResult.success();

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

@ -197,18 +197,26 @@ public class WxMiniController extends BaseController {
return getDataTable(tiktokImgVos); return getDataTable(tiktokImgVos);
} }
//@TokenCheck
@ApiOperation(value="检查某平台用户当日下载次数是否超标")
@PostMapping(value = "/checkUserCanDownload")
public AjaxResult checkUserCanDownload(@Validated @RequestBody @ApiParam("检查超标对象") checkUserCanDownloadDto dto){
log.debug("【微信图文小程序】检查某平台用户当日下载次数是否超标参数为:{}", JSON.toJSONString(dto));
return AjaxResult.success(creatorProfitService.checkUserCanDownload(dto.getUserId(),dto.getPlatform(),dto.getAppType()));
}
//@TokenCheck //@TokenCheck
@ApiOperation(value="新增/更新艺术家即将入账广告收益") @ApiOperation(value="新增/更新艺术家即将入账广告收益")
@PostMapping(value = "/insertOrUpdatePreAdProfit") @PostMapping(value = "/insertOrUpdatePreAdProfit")
public AjaxResult insertOrUpdatePreAdProfit(@Validated @RequestBody @ApiParam("即将入账广告对象") CreatorProfitAdInsertDto dto){ public AjaxResult insertOrUpdatePreAdProfit(@Validated @RequestBody @ApiParam("即将入账广告对象") CreatorProfitAdInsertDto dto){
log.debug("【微信图文小程序】新增/更新艺术家即将入账广告收益参数为:{}", JSON.toJSONString(dto)); log.debug("【微信图文小程序】新增/更新艺术家即将入账广告收益参数为:{}", JSON.toJSONString(dto));
return AjaxResult.success(creatorProfitService.insertCreatorProfit(dto.extractParam())); return AjaxResult.success(creatorProfitService.insertCreatorProfit(dto));
} }
//@TokenCheck //@TokenCheck
@ApiOperation(value="新增/更新艺术家即将入账邀请收益") @ApiOperation(value="新增/更新艺术家即将入账邀请收益")
@PostMapping(value = "/insertOrUpdatePreInviteProfit") @PostMapping(value = "/insertOrUpdatePreInviteProfit")
public AjaxResult insertOrUpdatePreInviteProfit(@Validated @RequestBody @ApiParam("即将入账邀请对象") CreatorProfitAdInsertDto dto){ public AjaxResult insertOrUpdatePreInviteProfit(@Validated @RequestBody @ApiParam("即将入账邀请对象") CreatorProfitInviteInsertDto dto){
log.debug("【微信图文小程序】新增/更新艺术家即将入账邀请收益参数为:{}", JSON.toJSONString(dto)); log.debug("【微信图文小程序】新增/更新艺术家即将入账邀请收益参数为:{}", JSON.toJSONString(dto));
creatorProfitService.insertInvitedProfit(dto.extractParam()); creatorProfitService.insertInvitedProfit(dto.extractParam());
return AjaxResult.success(); return AjaxResult.success();

10
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorProfitAdInsertDto.java

@ -1,7 +1,5 @@
package com.bnyer.img.dto; 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.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Getter; import lombok.Getter;
@ -37,9 +35,7 @@ public class CreatorProfitAdInsertDto implements Serializable {
@ApiModelProperty(value="应用类型(0->节点壁纸)") @ApiModelProperty(value="应用类型(0->节点壁纸)")
private String appType; private String appType;
public CreatorProfit extractParam(){ @NotNull(message = "用户id不能为空!")
CreatorProfit creatorProfit = new CreatorProfit(); @ApiModelProperty(value="用户id")
BeanUtils.copyProperties(this, creatorProfit); private Long userId;
return creatorProfit;
}
} }

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

@ -0,0 +1,45 @@
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 CreatorProfitInviteInsertDto 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="结算平台(0->抖音;1->快手;2->微信;3->uniapp)")
private String platform;
@NotBlank(message = "应用类型不能为空!")
@ApiModelProperty(value="应用类型(0->节点壁纸)")
private String appType;
public CreatorProfit extractParam(){
CreatorProfit creatorProfit = new CreatorProfit();
BeanUtils.copyProperties(this, creatorProfit);
return creatorProfit;
}
}

27
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/checkUserCanDownloadDto.java

@ -0,0 +1,27 @@
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 checkUserCanDownloadDto implements Serializable {
@ApiModelProperty(value="用户id")
private Long userId;
@NotNull(message = "平台不能为空!")
@ApiModelProperty(value="平台")
private String platform;
@NotNull(message = "应用不能为空!")
@ApiModelProperty(value="应用")
private String appType;
}

8
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/TiktokImgMapper.java

@ -60,4 +60,12 @@ public interface TiktokImgMapper extends BaseMapper<TiktokImg> {
* @return - * @return -
*/ */
List<TiktokImgVo> queryImgsByScanCodeAndTypeId(@Param("scanCode") String scanCode,@Param("typeId") Long typeId); List<TiktokImgVo> queryImgsByScanCodeAndTypeId(@Param("scanCode") String scanCode,@Param("typeId") Long typeId);
/**
* 查询艺术家分类图片数量
* @param typeId 类型id
* @param creatorId 艺术家id
* @return -
*/
Integer queryCreatorTypeImgNum(@Param("typeId") Long typeId,@Param("creatorId") Long creatorId);
} }

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

@ -1,6 +1,7 @@
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.CreatorProfitPageDto; import com.bnyer.img.dto.CreatorProfitPageDto;
import com.bnyer.img.dto.ProfitInOrEndDto; import com.bnyer.img.dto.ProfitInOrEndDto;
import com.bnyer.img.vo.*; import com.bnyer.img.vo.*;
@ -23,10 +24,10 @@ public interface CreatorProfitService {
/** /**
* 新增或更新广告收益记录 * 新增或更新广告收益记录
* @param creatorProfit 广告收益参数 * @param params 广告收益参数
* @return - * @return -
*/ */
int insertCreatorProfit(CreatorProfit creatorProfit); int insertCreatorProfit(CreatorProfitAdInsertDto params);
/** /**
* 新增或更新邀请收益 * 新增或更新邀请收益
@ -90,6 +91,11 @@ public interface CreatorProfitService {
*/ */
void batchUpdateConfirmType(); void batchUpdateConfirmType();
/**
* 批量删除昨日用户下载次数
*/
void batchDeleteUserDownloadNum();
/** /**
* 小程序查询收益信息 * 小程序查询收益信息
@ -169,6 +175,16 @@ public interface CreatorProfitService {
/** /**
* 批量更新收益单状态为转入钱包 * 批量更新收益单状态为转入钱包
* @param list 订单列表 * @param list 订单列表
* @return -
*/ */
int batchUpdate(List<Long> list); int batchUpdate(List<Long> list);
/**
* 检查某平台用户当日下载次数是否超标
* @param userId 用户id
* @param platform 平台
* @param appType 应用
* @return -
*/
boolean checkUserCanDownload(Long userId,String platform,String appType);
} }

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

@ -2,6 +2,7 @@ package com.bnyer.img.service;
import com.bnyer.img.domain.TiktokImg; import com.bnyer.img.domain.TiktokImg;
import com.bnyer.img.dto.TiktokImgPageDto; import com.bnyer.img.dto.TiktokImgPageDto;
import com.bnyer.img.vo.CreatorTypeImgVo;
import com.bnyer.img.vo.TiktokImgVo; import com.bnyer.img.vo.TiktokImgVo;
import java.util.List; import java.util.List;
@ -115,4 +116,11 @@ public interface TiktokImgService {
* @return - * @return -
*/ */
List<TiktokImgVo> queryImgsByScanCodeAndTypeId(String scanCode,Long typeId); List<TiktokImgVo> queryImgsByScanCodeAndTypeId(String scanCode,Long typeId);
/**
* 查询艺术家分类图片数量
* @param creatorId 艺术家id
* @return -
*/
CreatorTypeImgVo queryCreatorTypeImgNum(Long creatorId);
} }

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

@ -5,8 +5,10 @@ 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.redis.service.RedisService; import com.bnyer.common.redis.service.RedisService;
import com.bnyer.common.redis.service.RedissonService; import com.bnyer.common.redis.service.RedissonService;
import com.bnyer.img.constants.RedisKeyConstant;
import com.bnyer.img.domain.CreatorProfit; import com.bnyer.img.domain.CreatorProfit;
import com.bnyer.img.domain.InviteLog; import com.bnyer.img.domain.InviteLog;
import com.bnyer.img.dto.CreatorProfitAdInsertDto;
import com.bnyer.img.dto.CreatorProfitPageDto; import com.bnyer.img.dto.CreatorProfitPageDto;
import com.bnyer.img.dto.ProfitInOrEndDto; import com.bnyer.img.dto.ProfitInOrEndDto;
import com.bnyer.img.mapper.CreatorProfitMapper; import com.bnyer.img.mapper.CreatorProfitMapper;
@ -54,16 +56,33 @@ public class CreatorProfitServiceImpl implements CreatorProfitService {
} }
} }
/**
* 写入下载次数
* @param appType 应用
* @param platform 平台
* @param userId 用户id
*/
private void writePlatformUserDownloadNum(String appType,String platform,Long userId){
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String date = df.format(new Date());
String hashKey = appType+":"+platform+":"+userId;
log.info("日期【{}】应用【{}】平台【{}】用户【{}】下载数+1",date,appType,platform,userId);
String redisKey = RedisKeyConstant.PLATFORM_USER_DOWNLOAD_KEY + date;
redisService.hashIncr(redisKey, hashKey, 1);
}
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public int insertCreatorProfit(CreatorProfit creatorProfit) { public int insertCreatorProfit(CreatorProfitAdInsertDto params) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
long times = System.currentTimeMillis(); long times = System.currentTimeMillis();
String date = format.format(times); String date = format.format(times);
String mark = creatorProfit.getCreatorId().toString() + creatorProfit.getImgId().toString() + creatorProfit.getAppType() + creatorProfit.getPlatform() + String mark = params.getCreatorId().toString() + params.getImgId().toString() + params.getAppType() + params.getPlatform() +
"0" + date.replace("-", ""); "0" + date.replace("-", "");
//缓存中下载总数+1 //缓存中下载总数+1
tiktokImgService.writeDownloadTotalNum(creatorProfit.getAppType(), creatorProfit.getPlatform()); tiktokImgService.writeDownloadTotalNum(params.getAppType(), params.getPlatform());
//redis累计平台用户当天下载次数,12.00后过期
writePlatformUserDownloadNum(params.getAppType(), params.getPlatform(), params.getUserId());
//检查收益表是否存在广告记录,存在则更新次数 //检查收益表是否存在广告记录,存在则更新次数
boolean b = this.checkCreatorProfitExist(mark); boolean b = this.checkCreatorProfitExist(mark);
if (b) { if (b) {
@ -72,6 +91,12 @@ public class CreatorProfitServiceImpl implements CreatorProfitService {
return update; return update;
} }
//不存在则新增广告记录 //不存在则新增广告记录
CreatorProfit creatorProfit = new CreatorProfit();
creatorProfit.setCreatorId(params.getCreatorId());
creatorProfit.setScanCode(params.getScanCode());
creatorProfit.setImgId(params.getImgId());
creatorProfit.setPlatform(params.getPlatform());
creatorProfit.setAppType(params.getAppType());
creatorProfit.setCreateTime(new Date()); creatorProfit.setCreateTime(new Date());
creatorProfit.setUpdateTime(new Date()); creatorProfit.setUpdateTime(new Date());
creatorProfit.setType("0"); creatorProfit.setType("0");
@ -81,7 +106,7 @@ public class CreatorProfitServiceImpl implements CreatorProfitService {
creatorProfit.setDownloadNum(1); creatorProfit.setDownloadNum(1);
creatorProfit.setMark(mark); creatorProfit.setMark(mark);
//根据平台生成订单号 //根据平台生成订单号
switch (creatorProfit.getPlatform()) { switch (params.getPlatform()) {
case "0": case "0":
creatorProfit.setOrderNo("DY" + IdUtil.getSnowflakeNextIdStr()); creatorProfit.setOrderNo("DY" + IdUtil.getSnowflakeNextIdStr());
break; break;
@ -231,6 +256,21 @@ public class CreatorProfitServiceImpl implements CreatorProfitService {
log.info("==============批量更新艺术家收益状态完成,耗时【{}】毫秒!===============", System.currentTimeMillis() - startTime); log.info("==============批量更新艺术家收益状态完成,耗时【{}】毫秒!===============", System.currentTimeMillis() - startTime);
} }
@Override
public void batchDeleteUserDownloadNum() {
log.info("==============批量删除昨日用户下载次数开始!===============");
long startTime = System.currentTimeMillis();
//获取昨日日期
Date yesterday = new Date(startTime - 1000 * 60 * 60 * 24);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
String date = simpleDateFormat.format(yesterday);
String redisKey = RedisKeyConstant.PLATFORM_USER_DOWNLOAD_KEY + date;
if(redisService.hasKey(redisKey)){
redisService.deleteObject(redisKey);
}
log.info("==============批量删除昨日用户下载次数完成,耗时【{}】毫秒!===============", System.currentTimeMillis() - startTime);
}
@Override @Override
public ProfitVo queryFrontProfitInfo(Long creatorId) { public ProfitVo queryFrontProfitInfo(Long creatorId) {
//累计收益 //累计收益
@ -319,4 +359,24 @@ public class CreatorProfitServiceImpl implements CreatorProfitService {
public int batchUpdate(List<Long> list) { public int batchUpdate(List<Long> list) {
return creatorProfitMapper.batchUpdateTransInfo(list); return creatorProfitMapper.batchUpdateTransInfo(list);
} }
@Override
public boolean checkUserCanDownload(Long userId, String platform, String appType) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String date = df.format(new Date());
String hashKey = appType+":"+platform+":"+userId;
String redisKey = RedisKeyConstant.PLATFORM_USER_DOWNLOAD_KEY + date;
if(redisService.hasHashKey(redisKey,hashKey)){
//存在键,判断次数,次数达标则不可下载
Integer downloadNum = redisService.getCacheMapValue(redisKey, hashKey);
if(downloadNum >= 5){
return true;
}else{
return false;
}
}else{
//不存在键则可下载
return false;
}
}
} }

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

@ -23,10 +23,7 @@ import com.bnyer.img.mapper.InviteLogMapper;
import com.bnyer.img.mapper.TiktokImgMapper; import com.bnyer.img.mapper.TiktokImgMapper;
import com.bnyer.img.mapper.VerifyLogMapper; import com.bnyer.img.mapper.VerifyLogMapper;
import com.bnyer.img.service.CreatorService; import com.bnyer.img.service.CreatorService;
import com.bnyer.img.vo.CreatorDetailsVo; import com.bnyer.img.vo.*;
import com.bnyer.img.vo.CreatorHotVo;
import com.bnyer.img.vo.CreatorLoginVo;
import com.bnyer.img.vo.CreatorVo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;

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

@ -13,6 +13,7 @@ import com.bnyer.img.mapper.TiktokCollectionMapper;
import com.bnyer.img.mapper.TiktokImgMapper; import com.bnyer.img.mapper.TiktokImgMapper;
import com.bnyer.img.mapper.TiktokLikeMapper; import com.bnyer.img.mapper.TiktokLikeMapper;
import com.bnyer.img.service.TiktokImgService; import com.bnyer.img.service.TiktokImgService;
import com.bnyer.img.vo.CreatorTypeImgVo;
import com.bnyer.img.vo.TiktokImgVo; import com.bnyer.img.vo.TiktokImgVo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -189,4 +190,22 @@ public class TiktokImgServiceImpl implements TiktokImgService {
public List<TiktokImgVo> queryImgsByScanCodeAndTypeId(String scanCode, Long typeId) { public List<TiktokImgVo> queryImgsByScanCodeAndTypeId(String scanCode, Long typeId) {
return tiktokImgMapper.queryImgsByScanCodeAndTypeId(scanCode,typeId); return tiktokImgMapper.queryImgsByScanCodeAndTypeId(scanCode,typeId);
} }
@Override
public CreatorTypeImgVo queryCreatorTypeImgNum(Long creatorId) {
Integer headNum = tiktokImgMapper.queryCreatorTypeImgNum(1L, creatorId);
Integer gifNum = tiktokImgMapper.queryCreatorTypeImgNum(2L, creatorId);
Integer backNum = tiktokImgMapper.queryCreatorTypeImgNum(3L, creatorId);
Integer friendNum = tiktokImgMapper.queryCreatorTypeImgNum(4L, creatorId);
Integer emoNum = tiktokImgMapper.queryCreatorTypeImgNum(5L, creatorId);
Integer watchNum = tiktokImgMapper.queryCreatorTypeImgNum(6L, creatorId);
CreatorTypeImgVo result = new CreatorTypeImgVo();
result.setHeadNum(headNum);
result.setGifNum(gifNum);
result.setBackNum(backNum);
result.setFriendNum(friendNum);
result.setEmoNum(emoNum);
result.setWatchNum(watchNum);
return result;
}
} }

1
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/CollectionSyncTask.java

@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
/** /**
* 同步用户收藏记录任务
* @author chengkun * @author chengkun
* @date 2022/5/12 18:13 * @date 2022/5/12 18:13
*/ */

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

@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
/** /**
* 更新艺术家收益状态任务
* @author chengkun * @author chengkun
* @date 2022/5/12 18:13 * @date 2022/5/12 18:13
*/ */

1
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/LikeSyncTask.java

@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
/** /**
* 同步点赞任务
* @author chengkun * @author chengkun
* @date 2022/5/12 18:13 * @date 2022/5/12 18:13
*/ */

29
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/UserDownloadSyncTask.java

@ -0,0 +1,29 @@
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 UserDownloadSyncTask {
@Autowired
private CreatorProfitService creatorProfitService;
@XxlJob("userDownloadSyncTask")
public ReturnT<String> syncUserDownload(String param) throws Exception {
creatorProfitService.batchDeleteUserDownloadNum();
XxlJobLogger.log("{} 我执行了批量删除昨日用户下载次数任务", System.currentTimeMillis());
return ReturnT.SUCCESS;
}
}

35
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorTypeImgVo.java

@ -0,0 +1,35 @@
package com.bnyer.img.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
@Getter
@Setter
@ApiModel("艺术家分类图片数量响应体")
public class CreatorTypeImgVo implements Serializable {
@ApiModelProperty(value="头像数量")
private Integer headNum;
@ApiModelProperty(value="gif动图数量")
private Integer gifNum;
@ApiModelProperty(value="手机壁纸数量")
private Integer backNum;
@ApiModelProperty(value="朋友圈背景数量")
private Integer friendNum;
@ApiModelProperty(value="表情包数量")
private Integer emoNum;
@ApiModelProperty(value="iwatch数量")
private Integer watchNum;
private static final long serialVersionUID = 1L;
}

8
bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/TiktokImgMapper.xml

@ -93,4 +93,12 @@
where iti.is_show = '1' and iti.status = '1' where iti.is_show = '1' and iti.status = '1'
and ic.scan_code = #{scanCode} and iti.type_id = #{typeId} and ic.scan_code = #{scanCode} and iti.type_id = #{typeId}
</select> </select>
<select id="queryCreatorTypeImgNum" resultType="java.lang.Integer">
select
count(id)
from img_tiktok_img
where type_id = #{typeId} and creator_id = #{creatorId} and is_show = '1'
and status = '1'
</select>
</mapper> </mapper>

Loading…
Cancel
Save