diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/constants/RedisKeyConstant.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/constants/RedisKeyConstant.java index 0610449..72cbdf5 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/constants/RedisKeyConstant.java +++ b/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 PLATFORM_USER_DOWNLOAD_KEY = "bnyer.img.user.download:"; } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/CreatorMiniController.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/CreatorMiniController.java index 182e6ad..2087bfb 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/CreatorMiniController.java +++ b/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)); 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)); + } } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/FhMiniController.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/FhMiniController.java index a494ab7..7be6d94 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/FhMiniController.java +++ b/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); } + //@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 @ApiOperation(value="新增/更新艺术家即将入账广告收益") @PostMapping(value = "/insertOrUpdatePreAdProfit") public AjaxResult insertOrUpdatePreAdProfit(@Validated @RequestBody @ApiParam("即将入账广告对象") CreatorProfitAdInsertDto dto){ log.debug("【快手图文小程序】新增/更新艺术家即将入账广告收益参数为:{}", JSON.toJSONString(dto)); - return AjaxResult.success(creatorProfitService.insertCreatorProfit(dto.extractParam())); + return AjaxResult.success(creatorProfitService.insertCreatorProfit(dto)); } //@TokenCheck @ApiOperation(value="新增/更新艺术家即将入账邀请收益") @PostMapping(value = "/insertOrUpdatePreInviteProfit") - public AjaxResult insertOrUpdatePreInviteProfit(@Validated @RequestBody @ApiParam("即将入账邀请对象") CreatorProfitAdInsertDto dto){ + public AjaxResult insertOrUpdatePreInviteProfit(@Validated @RequestBody @ApiParam("即将入账邀请对象") CreatorProfitInviteInsertDto dto){ log.debug("【快手图文小程序】新增/更新艺术家即将入账邀请收益参数为:{}", JSON.toJSONString(dto)); creatorProfitService.insertInvitedProfit(dto.extractParam()); return AjaxResult.success(); diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokMiniController.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokMiniController.java index d443dc3..b32865a 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokMiniController.java +++ b/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); } + //@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 @ApiOperation(value="新增/更新艺术家即将入账广告收益") @PostMapping(value = "/insertOrUpdatePreAdProfit") public AjaxResult insertOrUpdatePreAdProfit(@Validated @RequestBody @ApiParam("即将入账广告对象") CreatorProfitAdInsertDto dto){ log.debug("【抖音图文小程序】新增/更新艺术家即将入账广告收益参数为:{}", JSON.toJSONString(dto)); - return AjaxResult.success(creatorProfitService.insertCreatorProfit(dto.extractParam())); + return AjaxResult.success(creatorProfitService.insertCreatorProfit(dto)); } //@TokenCheck @ApiOperation(value="新增/更新艺术家即将入账邀请收益") @PostMapping(value = "/insertOrUpdatePreInviteProfit") - public AjaxResult insertOrUpdatePreInviteProfit(@Validated @RequestBody @ApiParam("即将入账邀请对象") CreatorProfitAdInsertDto dto){ + public AjaxResult insertOrUpdatePreInviteProfit(@Validated @RequestBody @ApiParam("即将入账邀请对象") CreatorProfitInviteInsertDto dto){ log.debug("【抖音图文小程序】新增/更新艺术家即将入账邀请收益参数为:{}", JSON.toJSONString(dto)); creatorProfitService.insertInvitedProfit(dto.extractParam()); return AjaxResult.success(); diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/WxMiniController.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/WxMiniController.java index 7cba15a..ed219ee 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/WxMiniController.java +++ b/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); } + //@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 @ApiOperation(value="新增/更新艺术家即将入账广告收益") @PostMapping(value = "/insertOrUpdatePreAdProfit") public AjaxResult insertOrUpdatePreAdProfit(@Validated @RequestBody @ApiParam("即将入账广告对象") CreatorProfitAdInsertDto dto){ log.debug("【微信图文小程序】新增/更新艺术家即将入账广告收益参数为:{}", JSON.toJSONString(dto)); - return AjaxResult.success(creatorProfitService.insertCreatorProfit(dto.extractParam())); + return AjaxResult.success(creatorProfitService.insertCreatorProfit(dto)); } //@TokenCheck @ApiOperation(value="新增/更新艺术家即将入账邀请收益") @PostMapping(value = "/insertOrUpdatePreInviteProfit") - public AjaxResult insertOrUpdatePreInviteProfit(@Validated @RequestBody @ApiParam("即将入账邀请对象") CreatorProfitAdInsertDto dto){ + public AjaxResult insertOrUpdatePreInviteProfit(@Validated @RequestBody @ApiParam("即将入账邀请对象") CreatorProfitInviteInsertDto dto){ log.debug("【微信图文小程序】新增/更新艺术家即将入账邀请收益参数为:{}", JSON.toJSONString(dto)); creatorProfitService.insertInvitedProfit(dto.extractParam()); return AjaxResult.success(); diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorProfitAdInsertDto.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorProfitAdInsertDto.java index 98251d3..8b1d41d 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorProfitAdInsertDto.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorProfitAdInsertDto.java @@ -1,7 +1,5 @@ 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; @@ -37,9 +35,7 @@ public class CreatorProfitAdInsertDto implements Serializable { @ApiModelProperty(value="应用类型(0->节点壁纸)") private String appType; - public CreatorProfit extractParam(){ - CreatorProfit creatorProfit = new CreatorProfit(); - BeanUtils.copyProperties(this, creatorProfit); - return creatorProfit; - } + @NotNull(message = "用户id不能为空!") + @ApiModelProperty(value="用户id") + private Long userId; } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorProfitInviteInsertDto.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorProfitInviteInsertDto.java new file mode 100644 index 0000000..65ab180 --- /dev/null +++ b/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; + } +} diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/checkUserCanDownloadDto.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/checkUserCanDownloadDto.java new file mode 100644 index 0000000..1e3742c --- /dev/null +++ b/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; +} diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/TiktokImgMapper.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/TiktokImgMapper.java index d61fd4d..adf13ca 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/TiktokImgMapper.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/TiktokImgMapper.java @@ -60,4 +60,12 @@ public interface TiktokImgMapper extends BaseMapper { * @return - */ List 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); } 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 bc9cc56..10569fc 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 @@ -1,6 +1,7 @@ package com.bnyer.img.service; import com.bnyer.img.domain.CreatorProfit; +import com.bnyer.img.dto.CreatorProfitAdInsertDto; import com.bnyer.img.dto.CreatorProfitPageDto; import com.bnyer.img.dto.ProfitInOrEndDto; import com.bnyer.img.vo.*; @@ -23,10 +24,10 @@ public interface CreatorProfitService { /** * 新增或更新广告收益记录 - * @param creatorProfit 广告收益参数 + * @param params 广告收益参数 * @return - */ - int insertCreatorProfit(CreatorProfit creatorProfit); + int insertCreatorProfit(CreatorProfitAdInsertDto params); /** * 新增或更新邀请收益 @@ -90,6 +91,11 @@ public interface CreatorProfitService { */ void batchUpdateConfirmType(); + /** + * 批量删除昨日用户下载次数 + */ + void batchDeleteUserDownloadNum(); + /** * 小程序查询收益信息 @@ -169,6 +175,16 @@ public interface CreatorProfitService { /** * 批量更新收益单状态为转入钱包 * @param list 订单列表 + * @return - */ int batchUpdate(List list); + + /** + * 检查某平台用户当日下载次数是否超标 + * @param userId 用户id + * @param platform 平台 + * @param appType 应用 + * @return - + */ + boolean checkUserCanDownload(Long userId,String platform,String appType); } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/TiktokImgService.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/TiktokImgService.java index 18b54d0..361f0b4 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/TiktokImgService.java +++ b/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.dto.TiktokImgPageDto; +import com.bnyer.img.vo.CreatorTypeImgVo; import com.bnyer.img.vo.TiktokImgVo; import java.util.List; @@ -115,4 +116,11 @@ public interface TiktokImgService { * @return - */ List queryImgsByScanCodeAndTypeId(String scanCode,Long typeId); + + /** + * 查询艺术家分类图片数量 + * @param creatorId 艺术家id + * @return - + */ + CreatorTypeImgVo queryCreatorTypeImgNum(Long creatorId); } 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 5ffe257..8f6541e 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 @@ -5,8 +5,10 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.bnyer.common.redis.service.RedisService; import com.bnyer.common.redis.service.RedissonService; +import com.bnyer.img.constants.RedisKeyConstant; import com.bnyer.img.domain.CreatorProfit; import com.bnyer.img.domain.InviteLog; +import com.bnyer.img.dto.CreatorProfitAdInsertDto; import com.bnyer.img.dto.CreatorProfitPageDto; import com.bnyer.img.dto.ProfitInOrEndDto; 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 @Transactional(rollbackFor = Exception.class) - public int insertCreatorProfit(CreatorProfit creatorProfit) { + public int insertCreatorProfit(CreatorProfitAdInsertDto params) { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); long times = System.currentTimeMillis(); 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("-", ""); //缓存中下载总数+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); if (b) { @@ -72,6 +91,12 @@ public class CreatorProfitServiceImpl implements CreatorProfitService { 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.setUpdateTime(new Date()); creatorProfit.setType("0"); @@ -81,7 +106,7 @@ public class CreatorProfitServiceImpl implements CreatorProfitService { creatorProfit.setDownloadNum(1); creatorProfit.setMark(mark); //根据平台生成订单号 - switch (creatorProfit.getPlatform()) { + switch (params.getPlatform()) { case "0": creatorProfit.setOrderNo("DY" + IdUtil.getSnowflakeNextIdStr()); break; @@ -231,6 +256,21 @@ public class CreatorProfitServiceImpl implements CreatorProfitService { 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 public ProfitVo queryFrontProfitInfo(Long creatorId) { //累计收益 @@ -319,4 +359,24 @@ public class CreatorProfitServiceImpl implements CreatorProfitService { public int batchUpdate(List 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; + } + } } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/CreatorServiceImpl.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/CreatorServiceImpl.java index 4ce856c..d244f14 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/CreatorServiceImpl.java +++ b/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.VerifyLogMapper; import com.bnyer.img.service.CreatorService; -import com.bnyer.img.vo.CreatorDetailsVo; -import com.bnyer.img.vo.CreatorHotVo; -import com.bnyer.img.vo.CreatorLoginVo; -import com.bnyer.img.vo.CreatorVo; +import com.bnyer.img.vo.*; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokImgServiceImpl.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokImgServiceImpl.java index ce32b8d..fe7e661 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokImgServiceImpl.java +++ b/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.TiktokLikeMapper; import com.bnyer.img.service.TiktokImgService; +import com.bnyer.img.vo.CreatorTypeImgVo; import com.bnyer.img.vo.TiktokImgVo; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -189,4 +190,22 @@ public class TiktokImgServiceImpl implements TiktokImgService { public List queryImgsByScanCodeAndTypeId(String scanCode, Long 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; + } } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/CollectionSyncTask.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/CollectionSyncTask.java index f9f5f37..89148ec 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/CollectionSyncTask.java +++ b/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; /** + * 同步用户收藏记录任务 * @author chengkun * @date 2022/5/12 18:13 */ diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/CreatorProfitConfirmTypeSyncTask.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/CreatorProfitConfirmTypeSyncTask.java index 669fbb0..8221cd0 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/CreatorProfitConfirmTypeSyncTask.java +++ b/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; /** + * 更新艺术家收益状态任务 * @author chengkun * @date 2022/5/12 18:13 */ diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/LikeSyncTask.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/LikeSyncTask.java index 7ab7b44..c62ebd8 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/LikeSyncTask.java +++ b/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; /** + * 同步点赞任务 * @author chengkun * @date 2022/5/12 18:13 */ diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/UserDownloadSyncTask.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/UserDownloadSyncTask.java new file mode 100644 index 0000000..1d31f96 --- /dev/null +++ b/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 syncUserDownload(String param) throws Exception { + creatorProfitService.batchDeleteUserDownloadNum(); + XxlJobLogger.log("{} 我执行了批量删除昨日用户下载次数任务", System.currentTimeMillis()); + return ReturnT.SUCCESS; + } +} diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorTypeImgVo.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorTypeImgVo.java new file mode 100644 index 0000000..978e5b0 --- /dev/null +++ b/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; +} diff --git a/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/TiktokImgMapper.xml b/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/TiktokImgMapper.xml index ae4463c..aae6a2d 100644 --- a/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/TiktokImgMapper.xml +++ b/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' and ic.scan_code = #{scanCode} and iti.type_id = #{typeId} + +